The Chennault Aviation and Military Museum (CAMM) and the Ouachita Parish School System Talented Art Program recently partnered to present the American Spirit Challenge Student Competition. The competition is in conjunction with the annual juried art exhibition that the Talented Art Program holds showcasing student artwork.
CAMM Director, Adrienne LaFrance-Wells said, "We are thrilled to have the opportunity to encourage these students to consider the brave sacrifices that were made to preserve the freedoms that they enjoy every day by creating these beautiful works of art. Showcasing the young talent in our area is so important, as is promoting patriotism among our youth." The Northeast Louisiana Arts Council conducted judging so judges could remain objective. Prize awards were sponsored by Homeland Bank, the Selman Field Historical Association and the Fort Miro Chapter of the Daughters of the American Revolution.
The first prize winner, Alison Lau of Sterlington High School, chose WWII Hump Pilot, J.V. Vinyard, as her portrait subject. Vinyard spoke to around 500 students and parents at the Student Services Center art reception about his time flying over the Himalayan Mountains as the supply line in China during the war. CAMM has an exhibit on Vinyard in the Chennault exhibit room.
Han Vu of Ouachita Parish High School won Second prize for a portrait of her father who served in the South Vietnamese Air Force in the Vietnam War. West Ouachita High School student, Christina Ford, won third for her charcoal of WWII veteran, Cornelius Glenn Whitley, CPL US Marine Corps.
Woodmen of the World is a sponsor locally for National History Day, providing cash prizes for students. All students were recognized at a reception at the Chennault Museum.


text:
Home / News / MPs hear mum's story of hard-work and education
MPs hear mum's story of hard-work and education
Inspirational young mum Chevonne Lawson has been telling MPs how she transformed herself - from an 'in care' troubled youth to an adult learner studying for a degree in Criminology.
Chevonne and her Sunderland College lecturer of five years Katherine Bone headed for a Parliamentary Reception at the House of Commons as part of National Adult Learners Week.
The 22-year-old mum is studying for a degree in Criminology but not that long ago she was in care and pregnant.
She was invited to the event in London after winning a national award that recognised her hard work and dedication.
Chevonne, from Town End Farm, Sunderland, said: "Attending the reception at the Houses of Parliament was quite an experience and something I couldn't have imagined doing just a few years ago.
"I had quite a troubled upbringing and after a violent relationship life wasn't quite going the way I planned.
"There was a lot of trouble on the estate where I lived and when I found out I was pregnant I decided I didn't want the same for my daughter Saskia, now four.
"I needed a change and enrolled on a Level 1 Connect course at Sunderland College and I've never looked back.
"I've worked hard and kept at it and the support and advice I've been given from staff at Sunderland College has been second to none."
Chevonne learning while at school was hampered due to dyslexia and dyspraxia but with excellent support from Sunderland College she is now studying for a degree in Criminology at Sunderland University.
Now engaged to fiancé Gavin and mum to a son, also called Gavin aged two and step-mum to her fiancées daughter Katie, seven, she wants to put her experiences to good use by setting up her own courses to work with youth offenders and the homeless.
Lecturer Katherine said: "Chevonne's story is fantastic and shows what can be achieved with commitment, hard work and the level of support offered at Sunderland College.
"Chevonne is one of many adult learners we have at the College who are shaping their futures, and doing it while working, caring for young children, and in some cases both.
"We try our very best at Sunderland College to help all our students, whatever their individual circumstances, to be the best that they can be through a programme of quality education, teaching and support."
Michelle Elliott, Head of Employer and Employability at Sunderland College, said: "The College has a lot to offer adult learners.
"We have a generous support package and can help people with all they need to know about fees and financing.
"We aim to make getting higher and adult education qualifications as fuss free as possible."
The achievements of all adult learners are being recognised across the College.
One learner who is celebrating is Wayne Barber.
Wayne was made redundant as a miner from Easington Colliery nearly 20 years ago and has been unemployed ever since.
The 53-year-old has now enrolled on a construction course and is enjoying learning new skills that he hopes will land him permanent employment.
Wayne said: "Returning to education has shown me that you're never too old to learn something new.
"I find learning stimulating and for the first time in a long time I'm feeling positive about getting out and looking for work.
"I'm keen to put my new skills to the test."

redpajama_set_name: RedPajamaCommonCrawl


Nice case – where did you get that from?
I bought the board (and case) from RS Components quite a while ago. I was on the waiting list for about 2 or 3 months before it arrived. I believe you can buy them from quite a lot of places now that production has ramped up.


- Watch the team doing skills drills under the watchful eyes of Wayne Bennett, Kevin Walters, Stephen Kearney & the Football Dept staff.
- Meet the players after training for autographs & photos.
- Get your Broncos merchandise for the NRL Finals Series.
- Sign-up or register your interest for a 12-Game, 4-Game or 1-Game 2016 Broncos Membership Package.
- 'Pass the Ball' footy fun & freebies.
- Buck the Mascot, Hog's Breath Cafe Broncos Cheer Squad plus Nova 106.9FM and 4BC 1116 AM News Talk Live Radio Crosses.
See you there as Coach Wayne Bennett's Broncos charge towards their Home Grand Final Qualifier at Suncorp Stadium THIS Friday night 25 September v Roosters. Let's go Broncos!
Get a taste of #NRLFinals Footy Fever in Brisbane's Queen Street Mall with your lunch break THIS Wednesday 23 September.
Non-Ticketed Club Members & NEW 2016 Members: Ticket Access OPEN NOW – please see your Monday afternoon Member Mail email for your password.


The first book in the re-launched WITF Pick of the Month is "Beautiful Boy: A Father's Journey Through His Son's Addiction" by David Sheff. This is a deeply honest and moving firsthand account of how a young man's addiction to drugs affects his health, his family, and their community. This selection ties directly into WITF's ongoing "Real Life Real Issues: Drugs and Young People" project.
"Beautiful Boy" is an unflinching look at author David Sheff, his son Nic, and their family's battle with Nic's drug addiction. It demonstrates the importance of a family's love in helping a young addict with his struggles, while also showing that no matter how strong the family may be, they can't make the addict change. The book alternates between Sheff's work as an accomplished journalist trying to understand addiction and recovery, and his struggles as a father with the very real possibility that Nic will never get better.
Nic Sheff was a charming, funny kid, a varsity athlete, and an honor student, but he hid a growing addiction to drugs, primarily methamphetamines, that nearly killed him. Looking back, the father sees the subtle warning signs, including late night disappearances, evasions, and denials that would lead to deeper troubles. While trying to help Nic, David develops his own addiction - obsession with his son's addiction - which has additional consequences for their family.
Nic has also written about his own addiction, first in his autobiography "Tweak: Growing Up on Methamphetamines" and then his follow-up about his relapses and continuing struggles in "We All Fall Down: Living With Addiction."


text:
Webster's Knucklehead keeps it all in the family
Will Cleveland
@WillCleveland13
On Saturday afternoon, the entire staff at Knucklehead Brewing in Webster consisted of the Dummer family.
Father Len, the brewery founder, was working behind the bar with his wife, Kathy. Oldest son, Jacob, one of Knucklehead's brewers, was also pouring drinks.
Youngest son, Joshua, a chef with professional experience at places like Wegmans' Next Door Bar and Grill, was running the newly-opened kitchen.
The place was packed. Everyone, not hyperbole, was smiling. I was smiling. It was just a happy place to be. In Knucklehead, you feel like you're part of the Webster community, because that's how the Dummer family wants you to feel.
"Being able to work with family, and I speak for George also, is the best," said Len Dummer, an affable gentleman, who was sporting a cheeky doctor costume to celebrate Halloween. "My wife is my best friend. So working with her and both of my sons, it's a true blessing. Both of my sons had careers that they quit to come into the family business. It's a true blessing. I can't explain it to people."
Dummer notes that working with family can present some challenges, but he wouldn't change a thing.
"There are arguments between me and my sons," Dummer said. "My youngest son and I had a behind-the-scenes argument yesterday, but not of that matters. It's because we're so much alike. At the end of the day, I always get a hug from them. They say, 'I love you.' It's huge."
Len, a Webster resident, founded the brewery with his long-time neighbor, George Cline. Cline's family also works at the brewery.
Knucklehead is planning a big blowout for their first anniversary party in December. I've come away impressed with Knucklehead's beers on my previous visits. Each of the beers is well-executed and clean. I might not like how big some of the hoppy beers are in the malt backbone, but I can appreciate a well-crafted beer that is sure to please a wide audience.
Knucklehead's most recent seasonal beer is a winner. The Dark Shadow is a maple syrup vanilla bean porter that screams to be enjoyed with pancakes. You could probably substitute the beer for your maple syrup and come away pretty darn happy. At 7.4 percent alcohol, it's a really nice fall beer. The maple treatment, brewed with gallons of New York dark maple syrup (added after the boil to preserve maximum viscosity and maple flavor), is outstanding. I would've liked a tad more body and a tad more roasted malt character, but it's the first time Knucklehead has done the beer and I know it will be heartier in the future. Len Dummer told me that there are more plans to use more vanilla beans in the future. That would compliment the maple flavor perfect. As it stands now, you get a kiss of vanilla in the finish. But more would definitely help.
Webster has embraced Knucklehead. I have, too. It took me too long to make a return visit, but you can be assured that I will return soon (especially with the kitchen, which features housemade soups, paninis, sandwiches, and pretzels, now open).
Dummer is one of those people that you instantly connect with, and it's probably what makes him such a natural to own a brewery. He's always quick with a joke. He's always smiling, and it's probably why his patrons have embraced Knucklehead.
"When people ask me what's my favorite thing, I love making beer, I love making friends, I love making our customers happy, I love creating a good environment, but it's all about family. That's the biggest bang for my buck.
WCLEVELAND@Gannett.com


text:
// File Name: createEventMessage.c
//
// Written By: Danny Kent (jaus AT dannykent DOT com), Tom Galluzzo (galluzzo AT gmail DOT com)
//
// Version: 3.3.0b
//
// Date: 09/08/09
//
// Description: This file defines the functionality of a CreateEventMessage

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "jaus.h"

static const int commandCode = JAUS_CREATE_EVENT;
static const int maxDataSizeBytes = 512000; // Max Message size: 500K

static JausBoolean headerFromBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes);
static JausBoolean headerToBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes);
static int headerToString(CreateEventMessage message, char **buf);

static JausBoolean dataFromBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes);
static int dataToBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes);
static void dataInitialize(CreateEventMessage message);
static void dataDestroy(CreateEventMessage message);
static unsigned int dataSize(CreateEventMessage message);

// ************************************************************************************************************** //
//                                    USER CONFIGURED FUNCTIONS
// ************************************************************************************************************** //

// Initializes the message-specific fields
static void dataInitialize(CreateEventMessage message)
{
	// Set initial values of message fields

	message->presenceVector = newJausByte(JAUS_BYTE_PRESENCE_VECTOR_ALL_ON);	// 1: Presence Vector
	message->requestId = newJausByte(0);					// Local request ID for use in confirm event
	message->reportMessageCode = newJausUnsignedShort(0);	// Command Code of the resulting report
	message->eventType = newJausByte(0);					// Enumeration of Event types
	message->eventBoundary = newJausByte(0);				// Enumeration of Event Boundary Conditions
	message->limitDataField = newJausByte(0);				// Field from Report for Limit Trigger
	message->lowerLimit = jausEventLimitCreate();			// Lower Event Limit
	message->lowerLimit->dataType = EVENT_LIMIT_BYTE_TYPE;
	message->upperLimit = jausEventLimitCreate();			// Upper Event Limit
	message->upperLimit->dataType = EVENT_LIMIT_BYTE_TYPE;
	message->stateLimit = jausEventLimitCreate();			// State Event Limit used for Equal Boundary
	message->stateLimit->dataType = EVENT_LIMIT_BYTE_TYPE;
	message->requestedMinimumRate = newJausDouble(0.0);		// For Periodic Events for unchanging value, Scaled UnsignedShort (0, 1092)
	message->requestedUpdateRate = newJausDouble(0.0);		// For Periodic Events, Scaled UnsignedShort (0, 1092)
	message->queryMessage = NULL;							// Query Message (not including header) to use for response
}

// Destructs the message-specific fields
static void dataDestroy(CreateEventMessage message)
{
	// Free message fields
	if(message->queryMessage) jausMessageDestroy(message->queryMessage);
	if(message->lowerLimit) jausEventLimitDestroy(message->lowerLimit);
	if(message->upperLimit) jausEventLimitDestroy(message->upperLimit);
	if(message->stateLimit) jausEventLimitDestroy(message->stateLimit);
}

// Return boolean of success
static JausBoolean dataFromBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes)
{
	int index = 0;
	JausUnsignedShort tempUShort;
	JausUnsignedInteger queryMessageSize;

	if(bufferSizeBytes == message->dataSize)
	{
		// Unpack Message Fields from Buffer
		// Presence Vector
		if(!jausByteFromBuffer(&message->presenceVector, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_BYTE_SIZE_BYTES;

		// Request ID
		if(!jausByteFromBuffer(&message->requestId, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_BYTE_SIZE_BYTES;

		// Report Message Code
		if(!jausUnsignedShortFromBuffer(&message->reportMessageCode, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;

		// Event Type
		if(!jausByteFromBuffer(&message->eventType, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_BYTE_SIZE_BYTES;

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_BOUNDARY_BIT))
		{
			// Event Boundary
			if(!jausByteFromBuffer(&message->eventBoundary, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_BYTE_SIZE_BYTES;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_DATA_FIELD_BIT))
		{
			// Limit Data Field
			if(!jausByteFromBuffer(&message->limitDataField, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_BYTE_SIZE_BYTES;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_LOWER_LIMIT_BIT))
		{
			// Lower Limit
			if(!jausEventLimitFromBuffer(&message->lowerLimit, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += jausEventLimitSize(message->lowerLimit);
		}
		else
		{
			message->lowerLimit = NULL;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_UPPER_LIMIT_BIT))
		{
			// Upper Limit
			if(!jausEventLimitFromBuffer(&message->upperLimit, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += jausEventLimitSize(message->upperLimit);
		}
		else
		{
			message->upperLimit = NULL;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_STATE_LIMIT_BIT))
		{
			// State Limit
			if(!jausEventLimitFromBuffer(&message->stateLimit, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += jausEventLimitSize(message->stateLimit);
		}
		else
		{
			message->stateLimit = NULL;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_MINIMUM_RATE_BIT))
		{
			// Minimum Periodic Rate
			if(!jausUnsignedShortFromBuffer(&tempUShort, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;

			// Scaled Int (0, 1092);
			message->requestedMinimumRate = jausUnsignedShortToDouble(tempUShort, 0, 1092);
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_REQUESTED_RATE_BIT))
		{
			// Periodic Rate
			if(!jausUnsignedShortFromBuffer(&tempUShort, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;

			// Scaled Int (0, 1092);
			message->requestedUpdateRate = jausUnsignedShortToDouble(tempUShort, 0, 1092);
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_QUERY_MESSAGE_BIT))
		{
			// Query Message Size
			if(!jausUnsignedIntegerFromBuffer(&queryMessageSize, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_UNSIGNED_INTEGER_SIZE_BYTES;

			// Query Message Body
			if(bufferSizeBytes-index < queryMessageSize) return JAUS_FALSE;

			// Setup our Query Message
			message->queryMessage = jausMessageCreate();
			if(!message->queryMessage) return JAUS_FALSE;

			message->queryMessage->dataSize = queryMessageSize;
			jausAddressCopy(message->queryMessage->source, message->source);
			jausAddressCopy(message->queryMessage->destination, message->destination);

			message->queryMessage->commandCode = jausMessageGetComplementaryCommandCode(message->reportMessageCode);

			// Allocate Memory
			message->queryMessage->data = (unsigned char *) malloc(queryMessageSize);

			// Copy query message body to the data member
			memcpy(message->queryMessage->data, buffer+index, queryMessageSize);
			index += queryMessageSize;
		}
		return JAUS_TRUE;
	}
	else
	{
		return JAUS_FALSE;
	}
}

// Returns number of bytes put into the buffer
static int dataToBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes)
{
	int index = 0;
	JausUnsignedShort tempUShort;

	if(bufferSizeBytes >= dataSize(message))
	{
		// Unpack Message Fields from Buffer
		// Presence Vector
		if(!jausByteToBuffer(message->presenceVector, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_BYTE_SIZE_BYTES;

		// Request Id
		if(!jausByteToBuffer(message->requestId, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_BYTE_SIZE_BYTES;

		// Message Code
		if(!jausUnsignedShortToBuffer(message->reportMessageCode, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;

		// Event Type
		if(!jausByteToBuffer(message->eventType, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
		index += JAUS_BYTE_SIZE_BYTES;

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_BOUNDARY_BIT))
		{
			// Event Boundary
			if(!jausByteToBuffer(message->eventBoundary, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_BYTE_SIZE_BYTES;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_DATA_FIELD_BIT))
		{
			// Data Field
			if(!jausByteToBuffer(message->limitDataField, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_BYTE_SIZE_BYTES;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_LOWER_LIMIT_BIT))
		{
			// Lower Limit
			if(!jausEventLimitToBuffer(message->lowerLimit, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += jausEventLimitSize(message->lowerLimit);
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_UPPER_LIMIT_BIT))
		{
			// Upper Limit
			if(!jausEventLimitToBuffer(message->upperLimit, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += jausEventLimitSize(message->upperLimit);
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_STATE_LIMIT_BIT))
		{
			// State Limit
			if(!jausEventLimitToBuffer(message->stateLimit, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += jausEventLimitSize(message->stateLimit);
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_MINIMUM_RATE_BIT))
		{
			// Scaled Int (0, 1092);
			tempUShort = jausUnsignedShortFromDouble(message->requestedMinimumRate, 0, 1092);

			// Minimum Periodic Rate
			if(!jausUnsignedShortToBuffer(tempUShort, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_REQUESTED_RATE_BIT))
		{
			// Scaled Int (0, 1092);
			tempUShort = jausUnsignedShortFromDouble(message->requestedUpdateRate, 0, 1092);

			// Minimum Periodic Rate
			if(!jausUnsignedShortToBuffer(tempUShort, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
			index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;
		}

		if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_QUERY_MESSAGE_BIT))
		{
			//Query Message Size
			if(message->queryMessage)
			{
				if(!jausUnsignedIntegerToBuffer(message->queryMessage->dataSize, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
				index += JAUS_UNSIGNED_INTEGER_SIZE_BYTES;

				// Query Message Body
				if(bufferSizeBytes-index < message->queryMessage->dataSize) return JAUS_FALSE;
				memcpy(buffer+index, message->queryMessage->data, message->queryMessage->dataSize);
				index += message->queryMessage->dataSize;
			}
			else
			{
				if(!jausUnsignedIntegerToBuffer(0, buffer+index, bufferSizeBytes-index)) return JAUS_FALSE;
				index += JAUS_UNSIGNED_INTEGER_SIZE_BYTES;
			}
		}
	}

	return index;
}

static int dataToString(CreateEventMessage message, char **buf)
{
  //message already verified

  //Setup temporary string buffer
  unsigned int bufSize = 1000;
  char* lowerLimitStr = NULL;
  char* upperLimitStr = NULL;
  char* stateLimitStr = NULL;
  char* msgString = NULL;

  (*buf) = (char*)malloc(sizeof(char)*bufSize);

  strcpy((*buf), "\nPresence Vector: " );

  jausByteToHexString(message->presenceVector, (*buf)+strlen(*buf));

  strcat((*buf), "\nRequest Id: " );

  jausByteToString(message->requestId, (*buf)+strlen(*buf));

  strcat((*buf), "\nMessage Code: " );

  jausUnsignedShortToString(message->reportMessageCode, (*buf)+strlen(*buf));

  strcat((*buf), "\nEvent Type: " );

  jausByteToString(message->eventType, (*buf)+strlen(*buf));

  switch(message->eventType)
  {
  case EVENT_PERIODIC_TYPE:
    strcat((*buf), " Periodic(SC)");
    break;

  case EVENT_EVERY_CHANGE_TYPE:
    strcat((*buf), " Every Change");
    break;

  case EVENT_FIRST_CHANGE_TYPE:
    strcat((*buf), " First Change");
    break;

  case EVENT_FIRST_CHANGE_IN_AND_OUT_TYPE:
    strcat((*buf), " First change in and out of boundary");
    break;

  case EVENT_PERIODIC_NO_REPEAT_TYPE:
    strcat((*buf), " Periodic w/o replacement");
    break;

  case EVENT_ONE_TIME_ON_DEMAND_TYPE:
    strcat((*buf), " One time, on demand");
    break;
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_BOUNDARY_BIT))
  {
    strcat((*buf), "\nEvent Boundary: " );

    jausByteToString(message->eventBoundary, (*buf)+strlen(*buf));

    switch(message->eventBoundary)
    {
    case EQUAL_BOUNDARY:
      strcat((*buf), " Equal");
      break;

    case NOT_EQUAL_BOUNDARY:
      strcat((*buf), " Not Equal");
      break;

    case INSIDE_INCLUSIVE_BOUNDARY:
      strcat((*buf), " Inside Inclusive");
      break;

    case INSIDE_EXCLUSIVE_BOUNDARY:
      strcat((*buf), " Inside Exclusive");
      break;

    case OUTSIDE_INCLUSIVE_BOUNDARY:
      strcat((*buf), " Outside Inclusive");
      break;

    case OUTSIDE_EXCLUSIVE_BOUNDARY:
      strcat((*buf), " Outside Exclusive");
      break;

    case GREATER_THAN_OR_EQUAL_BOUNDARY:
      strcat((*buf), " Greater than or Equal");
      break;

    case GREATER_THAN_BOUNDARY:
      strcat((*buf), " Strictly Greater than");
      break;

    case LESS_THAN_OR_EQUAL_BOUNDARY:
      strcat((*buf), " Less than or Equal");
      break;

    case LESS_THAN_BOUNDARY:
      strcat((*buf), " Strictly Less than");
      break;
    }
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_DATA_FIELD_BIT))
  {
    strcat((*buf), "\nLimit Data Field: " );

    jausByteToString(message->limitDataField, (*buf)+strlen(*buf));
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_LOWER_LIMIT_BIT))
  {
    strcat((*buf), "\nLower Limit\n" );

    lowerLimitStr = jausEventLimitToString(message->lowerLimit);
    strcat((*buf), lowerLimitStr);
    free(lowerLimitStr);
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_UPPER_LIMIT_BIT))
  {
    strcat((*buf), "\nUpper Limit\n" );

    upperLimitStr = jausEventLimitToString(message->upperLimit);
    strcat((*buf), upperLimitStr);
    free(upperLimitStr);
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_STATE_LIMIT_BIT))
  {
    strcat((*buf), "\nState Limit\n" );

    stateLimitStr = jausEventLimitToString(message->stateLimit);
    strcat((*buf), stateLimitStr);
    free(stateLimitStr);
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_MINIMUM_RATE_BIT))
  {
    strcat((*buf), "\nRequested Minimum Periodic Rate(Hz): " );
    jausDoubleToString(message->requestedMinimumRate, (*buf)+strlen(*buf));
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_REQUESTED_RATE_BIT))
  {
    strcat((*buf), "\nRequested Periodic Update Rate(Hz): " );
    jausDoubleToString(message->requestedUpdateRate, (*buf)+strlen(*buf));
  }

  if(jausByteIsBitSet(message->presenceVector, UPDATE_EVENT_PV_QUERY_MESSAGE_BIT))
  {
    strcat((*buf), "\nQuery Message" );
    msgString = jausMessageToString(message->queryMessage);
    strcat((*buf), msgString);
    free(msgString);
  }

  return (int)strlen(*buf);
}

// Returns number of bytes put into the buffer
static unsigned int dataSize(CreateEventMessage message)
{
	int index = 0;

	// Presence Vector
	index += JAUS_BYTE_SIZE_BYTES;

	// Request ID
	index += JAUS_BYTE_SIZE_BYTES;

	// Message Code
	index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;

	// Event Type
	index += JAUS_BYTE_SIZE_BYTES;

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_BOUNDARY_BIT))
	{
		index += JAUS_BYTE_SIZE_BYTES;
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_DATA_FIELD_BIT))
	{
		index += JAUS_BYTE_SIZE_BYTES;
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_LOWER_LIMIT_BIT))
	{
		index += jausEventLimitSize(message->lowerLimit);
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_UPPER_LIMIT_BIT))
	{
		index += jausEventLimitSize(message->upperLimit);
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_STATE_LIMIT_BIT))
	{
		index += jausEventLimitSize(message->stateLimit);
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_MINIMUM_RATE_BIT))
	{
		index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_REQUESTED_RATE_BIT))
	{
		index += JAUS_UNSIGNED_SHORT_SIZE_BYTES;
	}

	if(jausByteIsBitSet(message->presenceVector, CREATE_EVENT_PV_QUERY_MESSAGE_BIT))
	{
		index += JAUS_UNSIGNED_INTEGER_SIZE_BYTES;

		// Jaus Message
		if(message->queryMessage) index += message->queryMessage->dataSize;
	}

	return index;
}

// ************************************************************************************************************** //
//                                    NON-USER CONFIGURED FUNCTIONS
// ************************************************************************************************************** //

CreateEventMessage createEventMessageCreate(void)
{
	CreateEventMessage message;

	message = (CreateEventMessage)malloc( sizeof(CreateEventMessageStruct) );
	if(message == NULL)
	{
		return NULL;
	}

	// Initialize Values
	message->properties.priority = JAUS_DEFAULT_PRIORITY;
	message->properties.ackNak = JAUS_ACK_NAK_NOT_REQUIRED;
	message->properties.scFlag = JAUS_NOT_SERVICE_CONNECTION_MESSAGE;
	message->properties.expFlag = JAUS_NOT_EXPERIMENTAL_MESSAGE;
	message->properties.version = JAUS_VERSION_3_3;
	message->properties.reserved = 0;
	message->commandCode = commandCode;
	message->destination = jausAddressCreate();
	message->source = jausAddressCreate();
	message->dataFlag = JAUS_SINGLE_DATA_PACKET;
	message->dataSize = maxDataSizeBytes;
	message->sequenceNumber = 0;

	dataInitialize(message);
	message->dataSize = dataSize(message);

	return message;
}

void createEventMessageDestroy(CreateEventMessage message)
{
	dataDestroy(message);
	jausAddressDestroy(message->source);
	jausAddressDestroy(message->destination);
	free(message);
	message = NULL;
}

JausBoolean createEventMessageFromBuffer(CreateEventMessage message, unsigned char* buffer, unsigned int bufferSizeBytes)
{
	int index = 0;

	if(headerFromBuffer(message, buffer+index, bufferSizeBytes-index))
	{
		index += JAUS_HEADER_SIZE_BYTES;
		if(dataFromBuffer(message, buffer+index, bufferSizeBytes-index))
		{
			return JAUS_TRUE;
		}
		else
		{
			return JAUS_FALSE;
		}
	}
	else
	{
		return JAUS_FALSE;
	}
}

JausBoolean createEventMessageToBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes)
{
	if(bufferSizeBytes < createEventMessageSize(message))
	{
		return JAUS_FALSE; //improper size
	}
	else
	{
		message->dataSize = dataToBuffer(message, buffer+JAUS_HEADER_SIZE_BYTES, bufferSizeBytes - JAUS_HEADER_SIZE_BYTES);
		if(headerToBuffer(message, buffer, bufferSizeBytes))
		{
			return JAUS_TRUE;
		}
		else
		{
			return JAUS_FALSE; // headerToCreateEventBuffer failed
		}
	}
}

CreateEventMessage createEventMessageFromJausMessage(JausMessage jausMessage)
{
	CreateEventMessage message;

	if(jausMessage->commandCode != commandCode)
	{
		return NULL; // Wrong message type
	}
	else
	{
		message = (CreateEventMessage)malloc( sizeof(CreateEventMessageStruct) );
		if(message == NULL)
		{
			return NULL;
		}

		message->properties.priority = jausMessage->properties.priority;
		message->properties.ackNak = jausMessage->properties.ackNak;
		message->properties.scFlag = jausMessage->properties.scFlag;
		message->properties.expFlag = jausMessage->properties.expFlag;
		message->properties.version = jausMessage->properties.version;
		message->properties.reserved = jausMessage->properties.reserved;
		message->commandCode = jausMessage->commandCode;
		message->destination = jausAddressCreate();
		*message->destination = *jausMessage->destination;
		message->source = jausAddressCreate();
		*message->source = *jausMessage->source;
		message->dataSize = jausMessage->dataSize;
		message->dataFlag = jausMessage->dataFlag;
		message->sequenceNumber = jausMessage->sequenceNumber;

		// Unpack jausMessage->data
		if(dataFromBuffer(message, jausMessage->data, jausMessage->dataSize))
		{
			return message;
		}
		else
		{
			return NULL;
		}
	}
}

JausMessage createEventMessageToJausMessage(CreateEventMessage message)
{
	JausMessage jausMessage;

	jausMessage = (JausMessage)malloc( sizeof(struct JausMessageStruct) );
	if(jausMessage == NULL)
	{
		return NULL;
	}

	jausMessage->properties.priority = message->properties.priority;
	jausMessage->properties.ackNak = message->properties.ackNak;
	jausMessage->properties.scFlag = message->properties.scFlag;
	jausMessage->properties.expFlag = message->properties.expFlag;
	jausMessage->properties.version = message->properties.version;
	jausMessage->properties.reserved = message->properties.reserved;
	jausMessage->commandCode = message->commandCode;
	jausMessage->destination = jausAddressCreate();
	*jausMessage->destination = *message->destination;
	jausMessage->source = jausAddressCreate();
	*jausMessage->source = *message->source;
	jausMessage->dataSize = dataSize(message);
	jausMessage->dataFlag = message->dataFlag;
	jausMessage->sequenceNumber = message->sequenceNumber;

	jausMessage->data = (unsigned char *)malloc(jausMessage->dataSize);
	jausMessage->dataSize = dataToBuffer(message, jausMessage->data, jausMessage->dataSize);

	return jausMessage;
}

unsigned int createEventMessageSize(CreateEventMessage message)
{
	return (unsigned int)(dataSize(message) + JAUS_HEADER_SIZE_BYTES);
}

char* createEventMessageToString(CreateEventMessage message)
{
  if(message)
  {
    char* buf1 = NULL;
    char* buf2 = NULL;
    char* buf = NULL;

    int returnVal;

    //Print the message header to the string buffer
    returnVal = headerToString(message, &buf1);

    //Print the message data fields to the string buffer
    returnVal += dataToString(message, &buf2);

buf = (char*)malloc(strlen(buf1)+strlen(buf2)+1);
    strcpy(buf, buf1);
    strcat(buf, buf2);

    free(buf1);
    free(buf2);

    return buf;
  }
  else
  {
    char* buf = "Invalid CreateEvent Message";
    char* msg = (char*)malloc(strlen(buf)+1);
    strcpy(msg, buf);
    return msg;
  }
}
//********************* PRIVATE HEADER FUNCTIONS **********************//

static JausBoolean headerFromBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes)
{
	if(bufferSizeBytes < JAUS_HEADER_SIZE_BYTES)
	{
		return JAUS_FALSE;
	}
	else
	{
		// unpack header
		message->properties.priority = (buffer[0] & 0x0F);
		message->properties.ackNak	 = ((buffer[0] >> 4) & 0x03);
		message->properties.scFlag	 = ((buffer[0] >> 6) & 0x01);
		message->properties.expFlag	 = ((buffer[0] >> 7) & 0x01);
		message->properties.version	 = (buffer[1] & 0x3F);
		message->properties.reserved = ((buffer[1] >> 6) & 0x03);

		message->commandCode = buffer[2] + (buffer[3] << 8);

		message->destination->instance = buffer[4];
		message->destination->component = buffer[5];
		message->destination->node = buffer[6];
		message->destination->subsystem = buffer[7];

		message->source->instance = buffer[8];
		message->source->component = buffer[9];
		message->source->node = buffer[10];
		message->source->subsystem = buffer[11];

		message->dataSize = buffer[12] + ((buffer[13] & 0x0F) << 8);

		message->dataFlag = ((buffer[13] >> 4) & 0x0F);

		message->sequenceNumber = buffer[14] + (buffer[15] << 8);

		return JAUS_TRUE;
	}
}

static JausBoolean headerToBuffer(CreateEventMessage message, unsigned char *buffer, unsigned int bufferSizeBytes)
{
	JausUnsignedShort *propertiesPtr = (JausUnsignedShort*)&message->properties;

	if(bufferSizeBytes < JAUS_HEADER_SIZE_BYTES)
	{
		return JAUS_FALSE;
	}
	else
	{
		buffer[0] = (unsigned char)(*propertiesPtr & 0xFF);
		buffer[1] = (unsigned char)((*propertiesPtr & 0xFF00) >> 8);

		buffer[2] = (unsigned char)(message->commandCode & 0xFF);
		buffer[3] = (unsigned char)((message->commandCode & 0xFF00) >> 8);

		buffer[4] = (unsigned char)(message->destination->instance & 0xFF);
		buffer[5] = (unsigned char)(message->destination->component & 0xFF);
		buffer[6] = (unsigned char)(message->destination->node & 0xFF);
		buffer[7] = (unsigned char)(message->destination->subsystem & 0xFF);

		buffer[8] = (unsigned char)(message->source->instance & 0xFF);
		buffer[9] = (unsigned char)(message->source->component & 0xFF);
		buffer[10] = (unsigned char)(message->source->node & 0xFF);
		buffer[11] = (unsigned char)(message->source->subsystem & 0xFF);

		buffer[12] = (unsigned char)(message->dataSize & 0xFF);
		buffer[13] = (unsigned char)((message->dataFlag & 0xFF) << 4) | (unsigned char)((message->dataSize & 0x0F00) >> 8);

		buffer[14] = (unsigned char)(message->sequenceNumber & 0xFF);
		buffer[15] = (unsigned char)((message->sequenceNumber & 0xFF00) >> 8);

		return JAUS_TRUE;
	}
}

static int headerToString(CreateEventMessage message, char **buf)
{
  //message existance already verified

  //Setup temporary string buffer

  unsigned int bufSize = 500;
  (*buf) = (char*)malloc(sizeof(char)*bufSize);

  strcpy((*buf), jausCommandCodeString(message->commandCode) );
  strcat((*buf), " (0x");
  sprintf((*buf)+strlen(*buf), "%04X", message->commandCode);

  strcat((*buf), ")\nReserved: ");
  jausUnsignedShortToString(message->properties.reserved, (*buf)+strlen(*buf));

  strcat((*buf), "\nVersion: ");
  switch(message->properties.version)
  {
    case 0:
      strcat((*buf), "2.0 and 2.1 compatible");
      break;
    case 1:
      strcat((*buf), "3.0 through 3.1 compatible");
      break;
    case 2:
      strcat((*buf), "3.2 and 3.3 compatible");
      break;
    default:
      strcat((*buf), "Reserved for Future: ");
      jausUnsignedShortToString(message->properties.version, (*buf)+strlen(*buf));
      break;
  }

  strcat((*buf), "\nExp. Flag: ");
  if(message->properties.expFlag == 0)
    strcat((*buf), "Not Experimental");
  else
    strcat((*buf), "Experimental");

  strcat((*buf), "\nSC Flag: ");
  if(message->properties.scFlag == 1)
    strcat((*buf), "Service Connection");
  else
    strcat((*buf), "Not Service Connection");

  strcat((*buf), "\nACK/NAK: ");
  switch(message->properties.ackNak)
  {
  case 0:
    strcat((*buf), "None");
    break;
  case 1:
    strcat((*buf), "Request ack/nak");
    break;
  case 2:
    strcat((*buf), "nak response");
    break;
  case 3:
    strcat((*buf), "ack response");
    break;
  default:
    break;
  }

  strcat((*buf), "\nPriority: ");
  if(message->properties.priority < 12)
  {
    strcat((*buf), "Normal Priority ");
    jausUnsignedShortToString(message->properties.priority, (*buf)+strlen(*buf));
  }
  else
  {
    strcat((*buf), "Safety Critical Priority ");
    jausUnsignedShortToString(message->properties.priority, (*buf)+strlen(*buf));
  }

  strcat((*buf), "\nSource: ");
  jausAddressToString(message->source, (*buf)+strlen(*buf));

  strcat((*buf), "\nDestination: ");
  jausAddressToString(message->destination, (*buf)+strlen(*buf));

  strcat((*buf), "\nData Size: ");
  jausUnsignedIntegerToString(message->dataSize, (*buf)+strlen(*buf));

  strcat((*buf), "\nData Flag: ");
  jausUnsignedIntegerToString(message->dataFlag, (*buf)+strlen(*buf));
  switch(message->dataFlag)
  {
    case 0:
      strcat((*buf), " Only data packet in single-packet stream");
      break;
    case 1:
      strcat((*buf), " First data packet in muti-packet stream");
      break;
    case 2:
      strcat((*buf), " Normal data packet");
      break;
    case 4:
      strcat((*buf), " Retransmitted data packet");
      break;
    case 8:
      strcat((*buf), " Last data packet in stream");
      break;
    default:
      strcat((*buf), " Unrecognized data flag code");
      break;
  }

  strcat((*buf), "\nSequence Number: ");
  jausUnsignedShortToString(message->sequenceNumber, (*buf)+strlen(*buf));

  return (int)strlen(*buf);

}

redpajama_set_name: RedPajamaGithub


text:
Johnson Controls, Inc. (JCI) Is Going Nowhere. Here's Why.
Sales at America's automakers have been going great guns these past few quarters, and you'd think that would be great news for the companies that make parts for all these shiny new autos. In some cases, you'd be right to think that. But in at least one case — the case of Johnson Controls, Inc. (NYSE:JCI) stock — you'd be very, very wrong.
Shares of auto-parts makers such as Lear (NYSE:LEA) and Magna International (NYSE:MGA) have rocketed this past year, outperforming the S&P 500 with 46% and 56% returns, respectively. Yet Johnson Controls, Inc. (NYSE:JCI) stock has lagged the market average by more than five points. Why?
Three reasons.
Johnson Controls stock is worse than average
Turns out that when you stack up Johnson Controls, Inc. (NYSE:JCI) stock against its two smaller rivals, there's precious little to recommend it. Johnson Controls' P/E ratio of 27.8 is no bargain. It's more than twice the cost of a share of Magna (which costs 10.5 times earnings), and nearly six times the cost of Lear, which sells for only 4.7 times earnings.
Worse, when you lay the three companies side-by-side, you can plainly see that Johnson Controls, Inc. (NYSE:JCI) generates far less real cash profit than its rivals do. Its free cash flow yield is the worst of the bunch:
JCI Free Cash Flow Yield data by YCharts
Johnson Controls grows too slow
Johnson Controls, Inc. (NYSE:JCI) stock is no great shakes when valued on more traditional "GAAP" earnings, either. Fact is, over the past five years Johnson Controls stock is the only one of the three that has seen earnings actually decline:
Johnson Controls stock is going nowhere
Of course, there's still the old investing truism to consider — that investing isn't about what a stock has done in the past, but what it might do in the future. Problem is, despite the shrinking earnings that are giving it a smaller earnings base to grow from in the future, Johnson Controls stock is still expected to be the slowest grower of the group:
So once again, we find Johnson Controls, Inc. (NYSE:JCI) stock occupying last place in a losing race.
Johnson Controls Inc (JCI)Lear Corp (LEA)Magna International Inc (MGA)NYSE:JCINYSE:LEANYSE:MGAShow more...Show less
Johnson Controls, Inc. (JCI), Duke Energy Corp (DUK): Who Benefits From a Better... Lear Corporation (LEA), Corrections Corp Of America (CXW): Shorts Are Piling... Delphi Automotive PLC (DLPH): Are Hedge Funds Right About This Stock?
This Metric Says You Are Smart to Sell Lear Corporation (LEA) American Axle & Manufact. Holdings, Inc. (AXL), General Motors Company... Ameresco Inc (AMRC), Johnson Controls, Inc. (JCI): The Cheapest Megawatt


How many playbooks do I need?
Hi all, first time posting here, and, I'm still very new to PbtA, but, I've played Dungeon World, ran a teeny tiny bit of Urban Shadows, and have been reading AW.
I'm starting a PbtA hack, as I really love to work with game systems and build on them, and am going to start running it for my meatspace group soon, I have enough of it functional for them to dive into, but, I'm running into an issue of, AW has soooo many playbooks, to really give enough options for different characters, it seems like I should have a similar number.
I have 7 playbooks mostly nailed down (though I expect them to go through changes), but, that feels like not enough to avoid eventually having a lot of overlap in characters because there's just not that much to choose from. I can kinda think of a potential number 8 & maybe 9, but, beyond that, really not coming to me for this game.
So, is there an ideal number of playbooks? Is 7 or even 9 really just not enough variety? Should I be stressing about this?
Re: How many playbooks do I need?
I could see a game with just 4 playbooks, if that game is about just playing those 4 archetypes.
7 playbooks widen the field, but is still pretty focused. Players have a choice when the game starts, but there is not a lot of choices if they can change playbooks during play (can they change playbooks during play?) Though this also depends on how flexible the playbooks are. Can a player pick the same playbook as another player, and most of the time not be stepping on that player's toes?
Original AW has 11 playbooks (if I'm counting correctly), with 5+ more extended playbooks. They run the gamut from hyper-violent to very social, from loner to leader to team player. So even if they aren't that flexible, you can play a lot of different scenarios.
Main thing is I have 6 players (and an extra that occasionally visits when we have an extra seat open), but... they like to sometimes switch up characters too, which makes it possibly a bigger issue if I really want niche protection.
Anyhow, good to know it isn't like there's some established minimum that there really needs to be beyond maybe 4, and I suppose with a group like this perhaps I'll have to accept some overlap for a while. I'll try not to stress on it.
I'm starting to have more ideas come to mind... wrote another playbook today and realised I could actually go in some very different directions with this than what I was initially thinking.
If I was designing something for a specific bunch of players, and giving them the choice of finished playbooks (rather than designing specific characters with/for each of them) then I'd try to make sure I had half again as many playbooks as players, so they get the illusion of choice, while making sure that whatever combination they chose produced a viable party.
That's tricky in abstract, because a group of six bricks doesn't work, and a team without a brick might struggle - but since you know your players you can cheat a little.
For a specific group I'd go with working with them to make specific (and clearly different) archetypes using Simpleworld.
If you are looking for an excuse and a deadline to make a hack, then what I do is choose the stats, than generate every permutation of major and minor stats for a playbook. So 2 stats means four playbooks, 3 stats means 9 (which is what I used - Fighter, Thief and Wizard).


Calling all LivingSocial Fans! Use promo code SPICE to save 20% off your next purchase by 9/18/13 at 11:59pm! Some restrictions do apply, with a max discount of $20.
What deals did you spot with the discount– and have you been to King Richard's Faire in Carver before?
Disclaimer: This post contains affiliate links, please see my disclosure policy here.


Binocular Waves is an artistic research project about binocular vision – being able to see with two eyes. The project explores what happens when we present two different images to left and right eye using a VR Headset. Depending on their similarities and differences these two images fuse, compete or coexist in the conscious visual perception creating different binocular phenomena.
Here you can watch my presentation on Binocular Waves which was made at International Symposium on Electronic Arts 2018 in Durban, South Africa.
Binocular Waves focuses on artistic exploitation of this phenomena and tries to create inspiration for scientific research on vision and on consciousness.
Binocular Dreams, experiment to reproduce dream phenomena, such as dream elements with multiple identities, so called "interobjects", by presenting each identity of the element to another eye.
Binocular Rivers, exploring new ways of animated painting, playing with movement and time using stereoscopic imagery.
All animation videos in these series are stereoscopic 360° animation videos. This means that each one of these animations is consisting of two separate 360° videos for left and right eyes.
"Binocular disparity" is difference of image location of an object seen by the left and right eyes, resulting from the distance between two eyes (parallax) and makes the perception of depth (stereopsis) possible. However, when two significantly different images are presented to left and right eyes one of the following perception phenomena may occur: a) "Binocular Fusion" two images are perceived as an averaged merge of two. b) "Binocular Transparency" they merge into a superimposition. c) "Binocular Rivalry" the images compete and alternate in perceptual awareness.
The work is the result of a long observation quastioning process. From early childhood on my left and right has strong myopia and astigmatism with different diopter levels. I had also two surgical retinal and lens interventions on my left eye resulting from injury. The interventions resulted into more differences between my left and right eye vision. This phenomenon made me curious whether images with interocular differences can be reproduced in visual art. I think this research can make the impairment and the improvement of vision with interocular differences perceivable for people without significant differences.


We see it every day: kids are coming home from summer camp, parents are getting ready to send them back to school and suddenly someone starts to complain of itchy scalp. You try to ignore it and give him or her a good shampooing. But the itchiness persists and you begin to feel a twinge of dread, knowing what it could mean. Its time to visit the LICE CLINIC IN SOUTH FLORIDA.
The end of summer is already a stressful time with parents trying to get in a few last family activities and the rush to get clothes, supplies and schedules in order for the first day of school. No one has time to deal with head lice and the endless trips to the drugstore or the adventures with messy home "remedies." Then there's trying to explain why your kids can't come out to play or why they won't be in school on the first day, not to mention the endless washing of linens.
And then there's the waiting. Did the treatment really take? Are lice still lurking around the house? No one can rest their head on a pillow without the fear that another lice outbreak is ready to launch. And then a week later, you realize that expensive, time consuming drug store lice treatment that seemed so promising didn't do the trick at all. Lice is still on the move in your household. Who's next?
Lice Troopers believes it doesn't have to be this way. Skip the pesticides, the chemicals, the expensive treatments, the old wives' tales and the wasted time and energy. At our LICE CLINIC IN SOUTH FLORIDA, your lice removal treatment is safe, chemical free, all-natural and 100% guaranteed. And the best part? You don't have to do a thing. Schedule a same day appointment at our child friendly lice removal center or request a house call. Either way, you sit back and let our professionals do the work. Our technicians are highly skilled and trained to find and remove every last bug and nit. When they declare your child "lice free" you know it's a guarantee.
No one welcomes a case of head lice, but with Lice Troopers, it doesn't have to be the nightmare parents so often experience. One simple treatment and your children are back out to enjoy the last days of summer and ready to start school.
For more facts on lice, lice removal and lice solutions, or to schedule an appointment, house call or school consultation, please visit the Lice Troopers website at: www.LiceTroopers.com or call 1-800-403-LICE. Our LICE CLINIC IN SOUTH FLORIDA services all of Miami Dade & Broward.


Reflexology is based on the principle that reflex points on the soles, tops, and sides of the feet correspond to different areas of the body. In this way, the feet can be seen as a 'map' of the body. By applying specialised massage techniques to specific reflex points – using the thumbs, fingers and knuckles – the aim of a reflexology treatment is to help restore balance to the body naturally, and improve the client's general well-being.
We start with a full consultation, asking various questions about your health and lifestyle, to ensure reflexology is right for you. For the treatment itself you will remain fully clothed, simply removing your shoes and socks. You'll be invited to relax on a reclining chair or treatment couch, or to put your feet up on a footstool. We will gently clean your feet before applying a fine powder, cream of oil, to help provide a free-flowing treatment, and then start gently massaging and stretching your feet and ankles.
As the treatment progresses, a variety of different reflexology techniques will be used to 'work' the reflex points on each foot, including a caterpillar-like movement called 'thumb walking'. The areas treated and pressure applied will be adapted to suit your individual needs. Treatment generally lasts for 45 minutes to an hour, though shorter reflexology sessions may be more appropriate in some instances.


text:
Hooked on Healthiness • Hooked on Pharma
Valeant Pharmaceuticals Intl, Inc. Acquisiton & Growth
Valeant Pharmaceuticals International, Inc.
Valeant Pharmaceuticals International, Inc. is a global and diverse pharmaceutical company that manufactures generic and over-the-counter pharmaceuticals and specializes in the areas of dermatology, eye health, gastrointestinal, neurology and consumer health. The successful organization whose corporate headquarters are in Quebec, has many sales and manufacturing offices throughout the world and has grown exponentially acquiring other pharmaceutical companies along the way including, Bausch & Lomb, one of the world's leading suppliers of eye health products.
About Valeant Pharmaceuticals
Photo courtesy youtube.com
Valeant is a platform company that can attribute the majority of its growth and success to it's acquisition of other companies. Formerly known as ICN Pharmaceuticals, Inc., Valeant began as the merger of ICN Pharmaceuticals, ICN Biomedicals, SPI Pharmaceuticals and Viratek into a single organization. Under its new name of Valeant, many more successful mergers took place and Valeant Pharmaceuticals began trading on the New York Stock Exchange in 2003 and merging with other companies growing its platform in the areas of neurology, dermatology, gastrointestinal health and more.
Photo courtesy nytimes.com
Valeant continued to grow globally, increasing its business worldwide with the acquisition of companies like PharmaSwiss, a Switzerland-based generics company, while also concentrating on growing business relations in Australia, Asia Pacific and South Africa. By 2012, Valeant had established itself as a leading pharmaceutical company in the field of dermatology, establishing a Center of Excellence in Dermatology in it's Laval, Quebec offices. In an effort to expand further, Valeant also acquired OraPharma in 2012 which allowed it to enter the oral health market segment. Valeant's completion of the Salix Pharmaceuticals merger in 2015 allowed it to secure its future in the gastrointestinal market. Under the leadership of the new CEO and Chairman of the Board, Joseph C. Papa, Valeant will continue to acquire more companies in all of its current specialties and grow outward delving into new medicinal market segments.
Photo courtesy ctvnews.ca
Valeant conducts product sales in North America, Europe, the Middle East, Latin America and Asia Pacific and has manufacturing sites in Canada, Brazil, Poland and Mexico. Possessing a large, global presence, Valeant is able to maintain great relationships with key stakeholders and consumers and rise above the competition, always delivering excellent performance. So many organizations are interested in merging with Valeant because of their proven, successful business model that greatly benefits stakeholders and consumers, relying on state of the art research and expertise to execute best practices and deliver an outstanding product.
Operational Expertise
Photo courtesy proactiveinvestors.com
Valeant United States holds key stakes in several market segments including, prescription dermatology, eye health, aesthetics, oral health, consumer healthcare, gastrointestinal, podiatry and neurology. Dermatology continues to be one of Valeant's most successful platforms, offering patients and physicians anti-fungal and anti-infective therapeutic treatments for a range of ailments including acne, nail fungus and dermatoses. Major mergers with companies such as Bausch & Lomb has also helped Valeant to grow considerably in the area of eye health providing consumers with products to treat a wide range of eye ailments including glaucoma, allergies, conjunctivitis and retinal diseases.
Global Consciousness
Photo courtesy thecountrycaller.com
Valeant seeks to reduce its carbon footprint in its various global facilities by practicing sustainability whenever possible. To that end, many Valeant facilities were upgraded in 2015 to ensure that water, heating and ventilation systems were being used conservatively and efficiently. To date, water conservation efforts have curbed the waste of at least 92,000 gallons of water annually in two of Valeant's U.S. locations.
To learn more and get #hooked on Valeant Pharmaceuticals International, Inc. visit the company website.
[contact-form-7 id="4″ title="Contact form 1″]
acquisiton growth ICN Biomedicals ICN Pharmaceuticals intl Joseph C. Papa OraPharma pharmaceuticals PharmaSwiss SPI Pharmaceuticals valeant Valeant CEO Valeant Chairman of the Board Valeant Pharmaceuticals Valeant Pharmaceuticals International Valeant Pharmaceuticals International Inc Valeant Sustainability Viratek VRX
5 Reasons Why Wells Fargo was Named Top Bank in 2015
Charlie Gracie – On Course for Six Decades
Hooked on Banking • Hooked on Entertainment • Hooked on Healthiness • Hooked on Inventions • Hooked on Opportunities • Hooked on Realty
Kevin Harrington – Original Shark on Shark Tank...
Hooked on Actors • Hooked on Broadway • Hooked on Dancing • Hooked on Entertainment • Hooked on Fashion • Hooked on Healthiness
Patricia DelSordo: Keeping the Beat Through the Years
COVID-19: Everything you need to know about it
Hooked on Causes • Hooked on Entertainment • Hooked on Healthiness • Hooked on Kids • Hooked on Legends • Hooked on Opportunities
Tony Robbins – The Nation's Number One Life...
Hooked on Actors • Hooked on Entertainment • Hooked on Healthiness • Hooked on the Movies
Tom Cruіѕе – American Actor and Producer
Hooked on Healthiness • Hooked on Hospitals
Dr. Victor Navarro an Einstein Healthcare Network...


MOON VS SUN – the collaboration between two of Canada's most prolific artists, Chantal Kreviazuk and Our Lady Peace frontman Raine Maida – today announce a cross-Canada tour, and premiere the music video for their first single "Lowlight."
Last week, MOON VS SUN released their debut single, "Lowlight." The song is available at all digital retailers and streaming services: https://MoonVsSun.lnk.to/LowlightPR. The video was shot last month in New Orleans. The album will be available for pre-orders starting this Friday.


text:
Morning Minutes: Sept. 1
Sep 1, 2010 at 12:01 AM Sep 1, 2010 at 1:10 AM
Stolid STAH-lid (ad.) Having or expressing little or no sensibility; unemotional - www.merriam-webster.com
Website of the Day
World War II photos
www.archives.gov/research/ww2/photos
World War II began on this date in 1939 (see This Day in History below). On this government website, you can see the war as never before with a plethora of photos. You can search by subject, by leader or more. This site also has links to other World War II pages.
Number to Know
78: Percentage of workers in private industry who receive a paid vacation as one of their employment benefits. - Census.gov
Sept. 1, 1939: World War II: Nazi Germany invades Poland, beginning the war in Europe.
Today's Featured Birthday
Musician Barry Gibbs (64)
"I write to escape; to escape poverty." - Edgar Rice Burroughs, who was born on this date in 1875.


text:
https://www.wsj.com/articles/china-pushes-smaller-cities-to-attract-rural-migrants-1450022515
China Pushes Smaller Cities to Attract Rural Migrants
Beijing aims to ease population pressure on its biggest urban areas and a glut of new homes elsewhere
While property prices are recovering in Shanghai and some other major Chinese cities, years of overbuilding plague most other urban areas. Photo: Agence France-Presse/Getty Images
Esther Fung
BiographyEsther Fung
@estherfung
Dec. 13, 2015 11:01 am ET
SHANGHAI—China is trying to alleviate a pair of knotty problems—population pressure on its biggest cities and a glut of new homes elsewhere—by getting smaller urban areas to offer housing discounts to attract migrants from the countryside.
Encouraged by Beijing, some local governments are rolling out a range of housing subsidies, tax waivers and lower mortgage rates to attract new residents. In Fuyang, an urban district near the well-off eastern provincial capital of Hangzhou, the government is providing a one-time housing subsidy of as much as 800,000 yuan ($123,874) for new residents with certain qualifications who buy homes in the area. The central city of Luoyang is subsidizing deed tax payments and mortgage costs for rural migrants buying homes in the city.
The push by Beijing is intended to address a problem that has cropped up in recent years as people leave the countryside for the cities for work: Most want to go to the largest, most prosperous cities, putting a strain on infrastructure and services in those places. Meanwhile, large parts of the rest of the country are overbuilt.
A result of this divergence is that, while property prices are recovering in Beijing, Shanghai and some other major cities, years of overbuilding plague most other urban areas and amount to a sizable drag on the economy.
"It is becoming clear to Chinese officials that the property sector still retains an important role in stabilizing the economy," said Chen Sheng, who heads the government-backed China Real Estate Data Academy. "The idea is to stabilize, not to overly stimulate the economy."
While housing sales have rebounded this year, investment in real-estate development has slowed to 1.3% in the first 11 months this year from the same period a year earlier, while construction starts declined 14.7% over the same period.
Last month, President Xi Jinping told a meeting of economic and financial officials that China must resolve the housing inventory situation and ensure the health of the property sector.
The efforts to divert rural migrants to smaller cities comes amid a renewed effort by Beijing to improve the treatment given to rural migrants.
The State Council, the government's executive body, over the weekend issued new guidelines for local governments, telling them to offer a more comprehensive package of benefits, from housing loans to social services, to incoming residents, who may not have the proper household registration documents, known as a hukou.
The hukou system was imposed decades ago to keep rural Chinese out of cities, when China was much poorer. It has evolved into a benefits management system, defining access to health care, employment, education and other social benefits. Typically those benefits are better for those with an urban hukou, and the current system has been widely criticized as unfair by often denying holders of a rural hukou access to those services in the cities to which they move.
Smaller cities have in the past tried to draw in rural migrants by offering them urban hukou. But still migrants have preferred larger cities with more vibrant job markets. And some analysts have said that cities will have to do more than offer lower housing prices.
Liu Dan, a Hangzhou-based fashion designer in her mid-20s, says that apart from housing costs, she will have to assess job prospects, social networks and proximity to her family in the northwestern region of Xinjiang before considering settling down in a city.
"It is about being familiar with a place," said Ms Liu, who has worked in Shanghai and Qingdao before. "I've been in Hangzhou for more than a year now, but I'm still not used to this place."
Some analysts have voiced skepticism that urbanization will cure China's housing surplus, noting that in some places, it is becoming more difficult to get rural dwellers to uproot themselves.
"There is a perception that there isn't much benefit moving into the city," said Song Huiyong, research director at property consultancy Shanghai Centaline Property, adding that smaller housing units and mediocre employment prospects stemming from a slowing economy deter them too.
"They also know their rural land is worth more now, and are unwilling to give up those rights."
Many of these subsidies are temporary, lasting only a few months as questions remain on how local governments could raise money to foot the bill for these costs. Some local governments have also asked state-owned firms and financial institutions including policy banks to help with these costs.
Write to Esther Fung at esther.fung@wsj.com


text:
Tensta Konsthall
Spanga
Taxingegrand 10
+46 08 360763 FAX +46 08 362560
Cut my legs off and call me shorty!
Ida Omalm
Susanna Hesselberg
Ulf Lundin
Emma Rendel
Ulla West
Kristoffer Zetterstrand
Tensta Konsthall, Spanga
A project that explores elements of humour and surprise. The Swedish based artists included work with ideas and ways of making that force us to look and look again. The display is in two parts: there are 5 artists showing in the main hall who work with photography, painting and illustration. The second part of the exhibition is a selection of Swedish video art curated by Gunnel Pettersson in association with Film Form and includes works from 1962 - 2009.
Cut my legs off and call me shorty! is an exhibition that explores elements of humour and surprise. The five Swedish based artists included work with ideas and ways of making that force us to look and look again.
Opening at June 17th!
Exhibition period: June 17th - September 19th 2009
Cut my legs off and call me shorty! is an exhibition that explores elements of humour and surprise. The thirteen Swedish based artists included work with ideas and ways of making that force us to look and look again. We may think we have understood an image but when we allow ourselves a closer examination there are unexpected twists, shocking details, hidden pratfalls, double and triple meanings.
The exhibition is in two parts there are 5 artists showing in the main hall who work with photography, painting and illustration:
* Susanna Hesselberg
* Ulf Lundin
* Emma Rendel
* Ulla West
* Kristoffer Zetterstrand
Ulla West uses a mix of old and new technology in her work including fine art techniques, craft practices as well as new media. Her methods are documentary, they are investigations related to phenomenon, situations or things that just occur. Associations and unexpected ideas are important in the process. Often her art projects start as an investigation and documentation with the purpose to relate to a certain situation or as a way to handle everyday life. The work itself often leads to unexpected materials, ideas and collaborations and the projects can last for years.
Kristoffer Zetterstrand has always worked in painting and more recently has begun to experiment with virtual still lifes and how two-dimensionality works in relation to computer generated 3D worlds. He is interested in spaces that are created online, in computer games and 3D programs - particularly when illusions begin to break down and the underlying construction is revealed - like when the program encounters a bug. His work has also found him looking at the relations of virtuality to the iconic works of Piero della Francesca, Giovanni Bellini and other renaissance artists.
Emma Rendel is one of the most distinctive graphic artists working today. Her graphic novels have been published by her own publishing company Awkwardbooks and by Jonathan Cape in England and Kartago in Sweden. Her storytelling finds its origins in fragments she overhears, memories from childhood, and stories that people tell her. Her narratives are often dark and filled with a morbid curiosity as well as a cutting sense of humour.
Ulf Lundin's work can be characterised by an extreme attention to detail and a fascination with how the process of photography captures a moment. Whilst the contents of his work may often been seen as mundane or commonplace the works become magical, extraordinary, fantastic and painterly. In a similar vein his videos deal with daily routines and every day social conditions raised to a level of the remarkable and the peculiar.
Susanna Hesselberg originally trained as a painter and she brings much of that attention and aesthetic sensibility to her photographic work. Often working with careful constructed staging and manufactured props Hesselberg uses the power of photographic manipulation but without resorting to computer graphics. The results are often disturbing disruptions in the flow of everyday life often focusing on interpersonal relationships and the body.
The second part of the exhibition is a selection of Swedish video art curated by Gunnel Pettersson in association with Film Form and includes works from 1962 - 2009 and includes:
Henrik Andersson, Reuben Henry, Tove Kjellmark, Karin Kihlberg, Carl Fredrik Reuterswärd, Malin Skjöld, Per Teljer, Christine Ödlund
We have taken the following quote by American writer E.B. White as good advice for the show.
"Analyzing humour is like dissecting a frog. Few people are interested and the frog dies of it".
Opening at June 17th
Box 4001, SE-163 04 Spanga - Stockholm
Hours: Tuesday–Saturday 12.00–17.00
dal 9/10/2015 al 9/1/2016


text:
Jimmy Olsen as the Guardian Revealed in 'Supergirl' Season 2
Jimmy Olsen as the Guardian Revealed in Supergirl Season 2
— October 12th, 2016
The Supergirl Season 2 Premiere on The CW set a ratings record for the network on Monday night, setting the tone for the season ahead. During a press screening for the second episode on Tuesday, executive producer Andrew Kreisberg revealed that Mehcad Brooks' Jimmy Olsen will in fact become the DC Comics hero The Guardian, signalling yet another big shift between Jimmy's character in the comics and the series. Earlier today, Mehcad Brooks himself took to social media, to give fans the first look at Jimmy suited up as The Guardian.
This new Instagram photo reveals that The Guardian costume will be much different than the comics as well. The character was originally created by Jack Kirby and Joe Simon, portrayed as a Metropolis cop named Jim Harper who covered the Suicide Slum section of the city, before he became a vigilante to protect the city from its criminals. Andrew Kriesberg teased at yesterday's screening (via TV Line), that he won't be telling Kara Zor-El (Melissa Benoist) his secret. Here's what he had to say below.
"James is going to decide that he can no longer be a sidekick, so he's going to become a vigilante. He's going to become Guardian, complete with the shield, which is going to cause a massive problem in his relationship with Kara because he decides not to tell her. There's this new masked vigilante, and she has her own feelings about vigilantes. ... And he's recruited Winn to help him. Winn is his man in the van. Winn and James together is like comedy gold."
This comes after the events in the season premiere, where both Kara ended her romantic relationship with Jimmy, which will certainly become more complicated with Jimmy keeping this vigilante secret from Kara. When asked why they decided to put an end to the Jimmy Olsen romance, Andrew Kreisberg said they were pursuing that relationship for the wrong reasons. Here's what he had to say below.
Related: Jon Cryer as Lex Luthor Revealed in Supergirl Season 4
"We sort of felt like we were pursuing that relationship more because we felt like we had to than any of us was really truly feeling it. We realized the best scenes between them were the nice, sweet scenes where they were being friends."
While we don't know exactly when they will happen yet, Supergirl will be involved in two different crossovers this season, one with Arrow, The Flash and Legends of Tomorrow, where all four heroes will face The Dominators, and a musical crossover with The Flash. We also don't know when Jimmy Olsen will transform into The Guardian, but we'll keep you posted with more details. Take a look at this new Supergirl Season 2 photo below, as Season 2 continues Monday, October 17 at 8 PM ET on The CW.
Topics: Supergirl
More TV News
Supergirl Season 5 New Costume Reveal Gives Kara Zor-El Pants
Supergirl Season 4 Flies to Blu-ray & DVD This Fall with Tons of Special Features
ArrowVerse Crossover Crisis on Infinite Earths Is Biggest in The CW's History
Watch Supergirl Recreate Tommy Wiseau's Infamous Scene from The Room
Every DC Arrowverse Show, Supernatural & Riverdale Renewed at The CW
Jon Cryer as Lex Luthor Revealed in Supergirl Season 4


text:
Rye motel to undergo 'authentic 1950s renovation'
Elizabeth Dinan edinan@seacoastonline.com @DinanElizabeth
RYE�� Four months after opening his fourth local hotel, Doug Palardy announced he's buying the Pebble Cove Motel on Ocean Boulevard, it will undergo "an authentic 1950s renovation," then reopen July 1 as the Rye Motor Inn & Swim Club.
"I've always loved design," said Palardy, whose interiors lean toward modern, even when they're in historic buildings. "I studied theatrical design, sets and costumes, at Bennington College, so design is really part of my DNA since childhood."
Palardy said he's had his eye on the 10-room 1958 motel for five years and asked owners Stephen and Beth McCann annually if they'd sell. After a quarter century of running the 741 Ocean Blvd. motel, the McCanns said yes.
Now plans call for Palardy's makeover to an authentic "60s beach, surf, bungalow vibe." He's thinking about rattan beds, velvet and Eames-style chairs, and kitschy kitchenettes; all sustenance for future Instagram-hungry guests. He'll keep the 1950s and 60s color schemes and the furniture will be new, but in the style of 1958 through 1963.
"That's the five-year period of interior design I'm going for," he said. "I grew up in a 1960s mobile home in Vermont with wood-panel walls. My mother hated them, but now I want to bring them back here.��
His Rye motel plans are similar to new retro destinations including The Thunderbird Inn in Savannah, Georgia, and The Dive Motel in Nashville, Tennessee.
Palardy previously renovated the former Bow Street Inn into the Ale House Inn and the former Sise Inn into the Hotel Portsmouth, then sold both. He currently owns and operates the six-suite Great Island Inn in New Castle, where the decor is coastal Scandinavian, inside an 1820 home he renovated across from the Town Hall. In August, he announced the opening of The Inn Downtown, with urban decor inside the 1809 Nutter-Rymes House, formerly the Blue Mermaid, in downtown Portsmouth's The Hill neighborhood, comprised of homes salvaged from urban renewal demolition.�
He said he's now thrilled to be planning a vintage makeover, to a mid-century space, as a preservation project for "one of the last motels in Rye."
"Most on the Seacoast are getting leveled for condos or other uses," Palardy said. "We bulldoze things from the 50s, 60s and 70s without even thinking about their historic significance. I think it's important to save something like this, from this era. Once they're gone, they're gone."
Like The Inn Downtown, the reimagined Rye motel will be a continuation of his apart-hotel brand, Seacoast Apart-Hotels. They feature self check-in and check-out, all units equipped with kitchens and the feeling of being in an apartment. It will be open year-round and the pool will be heated to extend the swimming season beyond that in the nearby Atlantic and "bring people to Rye beyond July and August," he said.
Palardy said travelers today rarely book week-long stays and younger travelers prefer short-stay road trips. He said the Rye Motor Inn & Swim Club will allow guests to drive up and stay for a day, weekend or longer.
Car clubs, families and groups of friends can book the whole motel and "have the pool to yourself," he said.
Palardy said he's seeking town approval to open an adults-only membership swim club for local residents he'd run through an app-based reservation sign-up model. Reservations would be made for specific time slots, reserve parking spaces and several locals have already asked about a seasonal membership, he said.
He also plans to seek town approval to return a neon sign to the site, which he said was there during the motel's heyday. He said the sign will be larger than what's there now, but it would be an historically accurate addition to his renovation.
"It's been a passion of mine to renovate a 1950s motel," he said. "We fetishize architecture that's over 100 years old on the Seacoast, but in another 40 years, this little motel will be 100 years old. It deserves to be saved."
Progress of the motel's makeover will be posted to Instagram @ryemotorinn and at ryemotorinn.com.


text:
Q: How to git clone with username and password in gitlab? I am using gitlab . I want to write a .bat file which contains all the steps so that I can automate all the process , which are as follows:

*

*open cmd.exe /k

*git init

*git clone https://username:password@gitlab.com/board.git  ////// not working

*git status

The 3rd point that is git clone https.... is not working in gitBash anymore. I tried using git clone SSH ... and it  is working which asked for the passphrase and after logging in it was about to clone the repo. As I want to automate the process by providing the login credentials by-default , how can it be achieved using SSH. Thank you.

A: You will need to use access token. Gitlab doesn't allow to use password directly.
git clone https://<username>:<token>@gitlab.com/group/project.git

To create a Gitlab access token:

*

*Click your avatar at the top right corner, select Edit profile

*On the left panel, select Access Tokens

*Input the Token name and Expiration date (if any)

*Check the read_repository checkbox

*Click Create personal access token

*Remember to save the access token, it appears only once

A: Adding username before gitlab worked for me. It will ask password afterwards.
git clone https://user@gitlab.com/project.git

A:
While generating keys I did give a passphrase.

Simplest solution would be to generate key without passphrase and use it.
Git clone over https should work but url from your example looks wrong. Go to your project page, choose Clone -> HTTPS url which should look like
https://gitlab.com/<username or groupname>/<projectname>.git
Let's say it is your user's private project and your user would be Julie, then url with credentials would be
https://user:password@gitlab.com/julie/board.git
Test url manually before you start writing your script.
So going to your script example don't init anything just do for https clone:
git clone https://user:password@gitlab.com/julie/board.git
cd board
git status

or if you create ssh key without passphrase and set it on GitLab:
git clone git@gitlab.com:gitlab.com/julie/board.git
cd board
git status

redpajama_set_name: RedPajamaStackExchange


Posted on September 29, 2017 by Matthew Leib. This entry was posted in Faculty Friday, Spotlight and tagged Faculty Friday, mindfulness, Spotlight. Bookmark the permalink.
The slump of a shoulder; the twitch of a lip; a certain gaze. Some actions say it all without the need for words. But when so much daily human connection and communication occurs on this substratum of silence, what can we learn from what's left unsaid?
It's a question for Valerie Manusov, a professor in the University of Washington's Department of Communication. Since joining the UW in 1993, she has studied how nonverbal actions affect interpersonal communications and, on a deeper level, how such discourse represents particular views about the nature of relationships and cultural values.
"Some nonverbal behaviors are pragmatic—such as scratching an itch—but all of them can be given multiple meanings or mean multiple things," she says.
In other words, when a friend or partner shifts positions on the couch, that movement could be from a desire to simply be more comfortable or due to the fact they had a bad day and want more personal space. But what Manusov says is often most telling—and consequently of most interest to her as a researcher—is how the other person sharing that space perceives that shift in position.
Manusov says one of the challenges of her work as a professor who researches communication is establishing a method to understanding meaning: where it lies and how it is ascribed. Last year, Manusov taught graduate and undergraduate classes in nonverbal communication. This quarter, she is teaching a graduate class on interpersonal communication as well as the Communication Department undergraduate honors seminar—a program she also leads.
"It's a sort of activism to try to help people see the role that they're playing in how they understand the world and how their own biases and narratives and perceptions about the world affecting how a situation or person is judged," she says.
Another hurdle to that end is that people often feel they've been "communicating" their entire lives and consequently are not keen on taking on the topic in what Manusov believes is its deservedly more complex context. When people do begin to adopt a more mindful, introspective approach to communication, however, the outcomes are almost universally of great benefit.
She came to study "mindfulness" almost by accident, after using the term in a paper on civility and the self.
"I was interested in whether increases in mindfulness mean that we're less likely to jump to conclusions about nonverbal cues and more likely to stay more open to what something may mean so that we're less reactive to it," she says.
An interest in this interplay of relationship and reaction is what led Manusov to study communication in the first place. Growing up in Los Angeles, she attended Venice High School—at the time the third-most naturally desegregated school in the U.S. But even with a student body reflective of Southern California's natural diversity of cultures, that didn't necessarily mean there weren't cultural cliques and preconceptions to be overcome.
"With a lot of cultural diversity, we were faced at a relatively early age with some of the challenges of communicating across difference," she says. One of the ways the administration addressed those challenges was by holding a weekend-long mountain retreat for students each semester.
The experience in turn influenced her decision to study communication as a freshman at UCLA, where she recalls being one of the few students at the school not actively studying to be news anchors. Eschewing mass communication, she was a part of a dedicated minority whose interests lay in communication's interpersonal side.
Manusov found some perspective abroad, studying in Leeds, England as an undergraduate before returning to the north of England for two years after finishing her master's at Michigan state—teaching for two years in Sheffield before embarking on her Ph.D.
For Manusov, the region's distinctive dialects and long-held cultural mores opened up a world of communicative nuance. Fascinating as it was, however, the region was caught in the economic turmoil in the wake of by Margaret Thatcher's government's attempt to close most of Britain's collieries and the miners' strike that followed 1984-85—widely deemed the most bitter industrial dispute in British history.
It's a lesson that still informs Manusov's work to this day and one she says she sees as relevant to the present as it felt in Yorkshire three decades ago: many perspectives make up a conversation, but in order for it to be both constructive and instructive, it's important to be mindful about where, how, and why meaning can be missed or misconstrued.
"It's really important to stop and look at what's going on within us that's making us react the way that we are." In the matter of articulating a more open and understanding future, it might be that a thoughtful silence speaks loudest of all.
Valerie Manusov holds a B.A. in Communication from UCLA, a Master's in Communication from Michigan State, and Ph.D. in Communication from the University of Southern California. She is the co-editor of The Sage Handbook of Nonverbal Communication, and the editor or co-editor of two other volumes, The sourcebook of nonverbal measures: Going beyond words and Attribution, communication behavior, and close relationships. In 2008, she co-founded Hestia Retreat, a Vashon Island-based nonprofit that provides seasonal retreats and other opportunities for women, often free of charge.


Home Customers Why work with Coca-Cola HBC Ukraine and Moldova?
At Coca‑Cola HBC, customers are central to the way we do business.
Our customers include hypermarkets, supermarkets, discounters, kiosks, petrol stations, cinemas, leisure parks, hotels, restaurants and cafés, among others.
Acceptability Supplying an extensive and growing range of products that meet the highest quality standards in each country, enhancing their acceptability to consumers. Our experience in quality control, customer service and efficient distribution, combined with a detailed understanding of consumer needs and access to the most effective communications channels, allows us to reach out to customers and consumers in each of our markets and meet their demands.
Coca‑Cola HBC provides a variety of products to match shopper needs in every channel and for every occasion. We make sure that we link our brands and packs to the most relevant occasions to drive incremental transactions. For instance, for sparkling soft drinks our major focus is on the 'with food' occasion for both our single-serve and multi-serve packs.
We offer consumers a broad choice of brands in different categories. People can choose from sparkling brands, such as the legendary Coca‑Cola and other popular brands like Sprite and Fanta. We also offer a choice between sugared, "low sugar" and "sugar-free" sparkling soft drinks. For those who prefer non-sparkling soft drinks, we offer a full range of still drinks such as juices, iced tea, energy and sports drinks, water and coffee.
Affordability considerations are key in our offer. We operate in a territory with a population of over approximately 595 million people across emerging, developing and established markets. Each market is different, with varying income per capita and lifestyles. Our ambition is to match our offer to different consumer needs and opportunities.
Huge hypermarket, discounter, restaurant or the small convenience store next door – we have the right product range for every channel. Our rich knowledge of shopping patterns lets us understand different shoppers' motivations across different channels. As a result of this, and our longstanding cooperation with different customers, we've designed our portfolio so that our customers are satisfied by having the right product range people are looking for in their outlets.


text:
Daily Correspondents
UN House in Abuja returns to life eight years after Boko Haram attack
Almost eight years after Boko Haram bombed the United Nations' House in Abuja, forcing the world body to abandon the place, agencies of the world body are gradually returning to the building, the UN Resident Coordinator, Edward Kallon has disclosed.
Boko Haram insurgents had on Friday, 26 of August, 2011, bombed the UN building in Abuja, with a car bomb killing at least 21 and wounding 60 others in the process.
Mr Kallon, who made the disclosure Wednesday in Abuja at an event to commemorate the 73rd Anniversary of the UN day, described the movement back to the UN House as a demonstration of the shared resilience of the UN and Nigeria against increasing violence and terrorism.
"The 2018 UN Day is a very important day for the UN system in Nigeria as it underscores the excellent cooperation and partnership of the UN and Nigeria over the years.
"Indeed this year's UN Day also marks the UN family partial move back to the UN House.
"To the UN in Nigeria, the UN House is a symbol of the resilience of our extraordinary cooperation and partnership with the Government and people of Nigeria," he said.
He explained that the UN building built by the Federal Government was occupied by the UN agencies in 2005 until the unfortunate bombing on Aug. 26, 2011.
While he commended the Federal Government and the people of Nigeria for their commitment to rebuild the UN House, the envoy expressed the hope that the partial movement which commences with UNDP, UNICEF among others would inspire the staff to work better.
The Minister of FCT, Mohammed Bello, described the event as significant as it marked the first time of gathering again at the building after the 2011 bombing of the place
"The UN building stands out as the symbol of our resilience and unbroken promises in addressing various challenges we are facing as a nation," he said.
The Minister who was represented by Umar Jubril, an official of the Ministry, congratulated the UN family on the return to the edifice, and assured them of their safety.
BREAKING: I didn't know most of the ministers I worked with in my first tenure, they were chosen by our party – Buhari
Sports7 days ago
AFCON: Dangote, Otedola to splash $75,000 per goal on Super Eagles
Buhari sympathises with Fasoranti over daughter's death, says killers were armed robbers not 'Fulani herdsmen'
60 arrested as Shiites, Police clash again in Abuja
ALERT: Six containers of 'poisonous' tomato paste from Iran arrive Nigerian ports
Even Dangote is feeling the 'pain' of poverty under Buhari – Atiku
JUST IN: Gunmen kidnapped Senator Abbo's stepmother, kill uncle in Adamawa
With blackout still witnessed all over Nigeria, Osinbajo says Buhari govt has invested N900bn on power since assumption of office
Submit opinion
Copyright © 2018 Daily correspondents


In a few days, US President Donald J. Trump will meet with his fellow heads of state and government from across the NATO alliance in Brussels, Belgium, and there is widespread concern that it will once again be a meeting where the United States is scornful of its allies and partners. Some even fear that this may be the beginning of the end of NATO and the bond between the United States and Europe. The flames have been fanned further by the recent G-7 meeting which ended in acrimony between the US president and the other leaders, the announced Trump-Putin summit in Helsinki a few days after the NATO summit, and whispers that the United States may pull its troops out of Germany in the coming years.
Trump has, going back to when he was a Republican primary candidate, criticized NATO's members for not doing their fair share in terms of spending on defense, and stated that the Europeans get more out of NATO than the United States does. The president does indeed have a point when it comes to European defense spending, which has been in decline since the early 1990s, although it is again on the rise since 2014. And the uptick in European defense spending is something that the president could arguably take partial credit for, if he wished.
But NATO is not about the United States doing Europe favors. It is an alliance created by the United States, and which has proven remarkably effective in transforming to, in great part, advancing American national security objectives. During the Cold War NATO stood as the bulwark against the Soviet Union in Europe during the multi-decade struggle between communism and the free world led by the United States. After the Cold War, NATO helped advance the vision set out by US President George H.W. Bush of a Europe whole, free, and at peace by inviting newly free countries of Eastern Europe to join the Alliance. And after the 9/11 attacks in the United States, NATO transformed again to take on the tough mission in Afghanistan alongside the United States. Well over a thousand non-US NATO soldiers lost their lives in that campaign. As a proportion of deployed forces, four NATO nations—Canada, the United Kingdom, Estonia, and Denmark—sustained higher casualty rates in Afghanistan than the United States did.
NATO is also useful to the United States, even when the Alliance itself is not centrally involved in an operation. The US-led campaign against the Islamic State of Iraq and al-Sham (ISIS) includes contributions from a range of NATO allies. Over a third of the air strikes against ISIS in Iraq and Libya have been flown by NATO partner countries, something that is made possible by the habits of cooperation established and practiced inside NATO.
The United States' European allies certainly do need to spend more on defense, and the president should push them to do it. But that is not to say that NATO is a burden for the United States. It has proven itself key to American national security objectives since the late 1940s. It is, after all, the United States' alliance.
Magnus Nordenman is director of the Transatlantic Security Initiative at the Atlantic Council's Scowcroft Center for Strategy and Security. Follow him on Twitter @MNordenman.
The Atlantic Council is supporting the #StrongerWithAllies campaign, promoting the idea that the United States is stronger and safer with friends abroad. Please join our effort by visiting StrongerWithAllies.org and using our social media toolkit to share your own content about why we're #StrongerWithAllies.


Find conveyor belt in Gauteng Business-to-Business | Search Gumtree Free Online Classified Ads for conveyor belt in Gauteng Business-to-Business and more.
conveyor belts ceramic strips in springs gauteng. Conveyor belt Standard conveyor belt for any application. The conveyor belts rubber series "TN" find their use in the transport of bulk material small and medium size.
Interflex Conveyor Belts Springs Gauteng - interflex conveyor belt conveyor belting interflex conveyor beltingconveyorbelting co zawelcome to interflex international belting and marketing is the biggest.
interflex conveyor belts number of employeesinterflex conveyor belts number of employees;, A conveyor belt is the carrying medium of a belt conveyor system (of. Read more → Interflex conveyor belts springs gauteng – interflex conveyor belts email Price of Cone Crusher, China. interflex conveyor belts email.


Click Here for more information about our Home of the Week!
Not the home you're looking for? Click here to view a list of all the homes we currently have for sale!
There is currently a shortage of homes on the market! This situation has caused several bidding wars and some properties are even selling for over their asking price! With interest rates low and buyers eager to buy, NOW is the best time to cash in on your investment!
If you are interested in finding out the current value of your property, contact me and I will provide you with a detailed Market Analysis that will reflect the projected selling value!
When we market your home, we don't use a one-size-fits-all strategy. Instead, we look at who is most likely to buy your home and aggressively market it to reach those individuals. We get beautiful photos from our professional photographer and use those for advertising. From social media to prints on paper, your home will be seen by the buyers you want. By the time we're done, you'll have bidding wars among prospective buyers who simply must have your house for themselves.
While one of our main goals is to sell your home for its true value and get the most out of it for you, we understand that the time this takes isn't something everyone has. If you're on the verge of foreclosure, we act quickly to prevent it with a short sale and charge you nothing for it.


The Texecom Premier Impaq+ has a host of additional features over the Texecom Impaq E to aid installation and enhance performance. It is a digital shock sensor with advanced signal processing. Tri-colour LED indication guarantees correct sensitivity whilst microprocessor control provides unparalleled false alarm immunity.


text:
Q: All data in a row. Move observations under each other I have the following data:
data <- list(list(eventId = 8, subEventName = "Simple pass", tags = list(
  list(id = 1801)), playerId = 122671, positions = list(list(
    y = 50, x = 50), list(y = 53, x = 35)), matchId = 2057954,
  eventName = "Pass", teamId = 16521, matchPeriod = "1H", eventSec = 1.656214,
  subEventId = 85, id = 258612104), list(eventId = 8, subEventName = "High pass",
                                         tags = list(list(id = 1801)), playerId = 139393, positions = list(
                                           list(y = 53, x = 35), list(y = 19, x = 75)), matchId = 2057954,
                                         eventName = "Pass", teamId = 16521, matchPeriod = "1H", eventSec = 4.487814,
                                         subEventId = 83, id = 258612106))

I want to create a data frame out of this list. I use unlist(data), which creates a row with repeated variables.
> unlist(data)
      eventId  subEventName       tags.id      playerId   positions.y   positions.x   positions.y
          "8" "Simple pass"        "1801"      "122671"          "50"          "50"          "53"
  positions.x       matchId     eventName        teamId   matchPeriod      eventSec    subEventId
         "35"     "2057954"        "Pass"       "16521"          "1H"    "1.656214"          "85"
           id       eventId  subEventName       tags.id      playerId   positions.y   positions.x
  "258612104"           "8"   "High pass"        "1801"      "139393"          "53"          "35"
  positions.y   positions.x       matchId     eventName        teamId   matchPeriod      eventSec
         "19"          "75"     "2057954"        "Pass"       "16521"          "1H"    "4.487814"
   subEventId            id
         "83"   "258612106"

Each observation starts with the eventId variable. So, basically I have to split the data into dataframes starting with eventId, and then moving those dataframes one under the other. I.e. having two observations in this case. Do you have any idea?  thanks in advance

A: Try tibblify--
library(tibblify)

tibblify(data)
## A tibble: 2 x 12
#  eventId subEventName               tags playerId          positions matchId eventName teamId matchPeriod eventSec subEventId        id
#    <dbl> <chr>        <list<tbl_df[,1]>>    <dbl> <list<tbl_df[,2]>>   <dbl> <chr>      <dbl> <chr>          <dbl>      <dbl>     <dbl>
#1       8 Simple pass             [1 x 1]   122671            [2 x 2] 2057954 Pass       16521 1H              1.66         85 258612104
#2       8 High pass               [1 x 1]   139393            [2 x 2] 2057954 Pass       16521 1H              4.49         83 258612106

A: You can use rbindlist from data.table :
result <- data.table::rbindlist(data)
result

#   eventId subEventName      tags playerId positions matchId eventName teamId matchPeriod eventSec subEventId       id
#1:       8  Simple pass <list[1]>   122671 <list[2]> 2057954      Pass  16521          1H     1.66         85 2.59e+08
#2:       8  Simple pass <list[1]>   122671 <list[2]> 2057954      Pass  16521          1H     1.66         85 2.59e+08
#3:       8    High pass <list[1]>   139393 <list[2]> 2057954      Pass  16521          1H     4.49         83 2.59e+08
#4:       8    High pass <list[1]>   139393 <list[2]> 2057954      Pass  16521          1H     4.49         83 2.59e+08

A: Does this help solve your problem?
df <- data.frame(matrix(unlist(data), nrow=length(data), byrow=T))


We know you've been waiting, but we are excited to announce that we will be releasing a public beta soon! Only our fans on Facebook will be able to participate so invite all your friends to 'Like' Chinzilla!
This entry was posted in Chinzilla, Morphs. Bookmark the permalink.
Can't wait dude!!! Looks awesome btw. Keep up the good work!!!