text:
#include <alsa/asoundlib.h>
#include <getopt.h>
#include <math.h>
#include <pthread.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <sys/select.h>
#include <unistd.h>

#include "cras_sbc_codec.h"
#include "cras_client.h"
#include "cras_types.h"
#include "cras_util.h"

#define NOT_ASSIGNED (0)
#define PLAYBACK_BUFFERED_TIME_IN_US (5000)

#define BUF_SIZE 32768

static const size_t MAX_IODEVS = 10; /* Max devices to print out. */
static const size_t MAX_IONODES = 20; /* Max ionodes to print out. */
static const size_t MAX_ATTACHED_CLIENTS = 10; /* Max clients to print out. */

static uint8_t *file_buf;
static size_t file_buf_size;
static size_t file_buf_read_offset;
static int pipefd[2];
static struct timespec last_latency;
static int show_latency;
static float last_rms_sqr_sum;
static int last_rms_size;
static float total_rms_sqr_sum;
static int total_rms_size;
static int show_rms;
static int show_total_rms;
static int keep_looping = 1;
static int exit_after_done_playing = 1;
static size_t duration_frames;

static struct cras_audio_codec *capture_codec;
static struct cras_audio_codec *playback_codec;
static unsigned char cap_buf[BUF_SIZE];
static char *channel_layout = NULL;

/* Conditional so the client thread can signal that main should exit. */
static pthread_mutex_t done_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t done_cond = PTHREAD_COND_INITIALIZER;

struct cras_audio_format *aud_format;

static int terminate_stream_loop()
{
	keep_looping = 0;
	return write(pipefd[1], "1", 1);
}

static size_t get_block_size(uint64_t buffer_time_in_us, size_t rate)
{
	return (size_t)(buffer_time_in_us * rate / 1000000);
}

static void check_stream_terminate(size_t frames)
{
	if (duration_frames) {
		if (duration_frames <= frames)
			terminate_stream_loop();
		else
			duration_frames -= frames;
	}
}

/* Compute square sum of samples (for calculation of RMS value). */
float compute_sqr_sum_16(const int16_t *samples, int size)
{
	unsigned i;
	float sqr_sum = 0;

	for (i = 0; i < size; i++)
		sqr_sum += samples[i] * samples[i];

	return sqr_sum;
}

/* Update the RMS values with the given samples. */
int update_rms(const uint8_t *samples, int size)
{
	switch (aud_format->format) {
	case SND_PCM_FORMAT_S16_LE: {
		last_rms_sqr_sum = compute_sqr_sum_16((int16_t *)samples, size / 2);
		last_rms_size = size / 2;
		break;
	}
	default:
		return -EINVAL;
	}

	total_rms_sqr_sum += last_rms_sqr_sum;
	total_rms_size += last_rms_size;

	return 0;
}

/* Run from callback thread. */
static int got_samples(struct cras_client *client,
		       cras_stream_id_t stream_id,
		       uint8_t *captured_samples,
		       uint8_t *playback_samples,
		       unsigned int frames,
		       const struct timespec *captured_time,
		       const struct timespec *playback_time,
		       void *user_arg)
{
	int *fd = (int *)user_arg;
	int ret;
	int write_size;
	int processed_bytes, frame_bytes;
	size_t encoded;

	cras_client_calc_capture_latency(captured_time, &last_latency);

	frame_bytes = cras_client_format_bytes_per_frame(aud_format);
	write_size = frames * frame_bytes;

	/* Update RMS values with all available frames. */
	if (keep_looping) {
		update_rms(captured_samples,
			   min(write_size, duration_frames * frame_bytes));
	}

	check_stream_terminate(frames);

	if (capture_codec) {
		processed_bytes = capture_codec->encode(
				capture_codec,
				captured_samples,
				write_size,
				cap_buf,
				BUF_SIZE,
				&encoded);
		if (processed_bytes <= 0 || processed_bytes > write_size) {
			terminate_stream_loop();
			return EOF;
		}

		ret = write(*fd, cap_buf, encoded);
		if (ret != encoded)
			printf("Error writing file\n");

		return processed_bytes / frame_bytes;
	} else {
		ret = write(*fd, captured_samples, write_size);
		if (ret != write_size)
			printf("Error writing file\n");
		return frames;
	}
}

/* Run from callback thread. */
static int put_samples(struct cras_client *client,
		       cras_stream_id_t stream_id,
		       uint8_t *captured_samples,
		       uint8_t *playback_samples,
		       unsigned int frames,
		       const struct timespec *captured_time,
		       const struct timespec *playback_time,
		       void *user_arg)
{
	size_t this_size, decoded;
	snd_pcm_uframes_t avail;
	uint32_t frame_bytes = cras_client_format_bytes_per_frame(aud_format);

	if (file_buf_read_offset >= file_buf_size) {
		if (exit_after_done_playing)
			terminate_stream_loop();
		return EOF;
	}

	check_stream_terminate(frames);

	avail = frames * frame_bytes;

	this_size = file_buf_size - file_buf_read_offset;
	if (this_size > avail)
		this_size = avail;

	cras_client_calc_playback_latency(playback_time, &last_latency);

	if (playback_codec) {
		this_size = playback_codec->decode(playback_codec,
				       file_buf + file_buf_read_offset,
				       file_buf_size - file_buf_read_offset,
				       playback_samples, this_size, &decoded);

		file_buf_read_offset += this_size;
		if (this_size == 0) {
			printf("stop looping\n");
			terminate_stream_loop();
			return EOF;
		}
		return decoded / frame_bytes;
	} else {
		memcpy(playback_samples,
		       file_buf + file_buf_read_offset,
		       this_size);
		file_buf_read_offset += this_size;
		return this_size / frame_bytes;
	}
}

/* Run from callback thread. */
static int unified_samples(struct cras_client *client,
			   cras_stream_id_t stream_id,
			   uint8_t *captured_samples,
			   uint8_t *playback_samples,
			   unsigned int frames,
			   const struct timespec *captured_time,
			   const struct timespec *playback_time,
			   void *user_arg)
{
	unsigned int frame_bytes;

	frame_bytes = cras_client_format_bytes_per_frame(aud_format);
	memcpy(playback_samples, captured_samples, frames * frame_bytes);
	return frames;
}

/* Run from callback thread. */
static int put_stdin_samples(struct cras_client *client,
		       cras_stream_id_t stream_id,
		       uint8_t *captured_samples,
		       uint8_t *playback_samples,
		       unsigned int frames,
		       const struct timespec *captured_time,
		       const struct timespec *playback_time,
		       void *user_arg)
{
	int rc = 0;
	uint32_t frame_bytes = cras_client_format_bytes_per_frame(aud_format);

	rc = read(0, playback_samples, frames * frame_bytes);
	if (rc <= 0) {
		terminate_stream_loop();
		return -1;
	}

	return rc / frame_bytes;
}

static int stream_error(struct cras_client *client,
			cras_stream_id_t stream_id,
			int err,
			void *arg)
{
	printf("Stream error %d\n", err);
	terminate_stream_loop();
	return 0;
}

static void print_last_latency()
{
	if (last_latency.tv_sec > 0 || last_latency.tv_nsec > 0)
		printf("%u.%09u\n", (unsigned)last_latency.tv_sec,
		       (unsigned)last_latency.tv_nsec);
	else {
		printf("-%lld.%09lld\n", (long long)-last_latency.tv_sec,
		       (long long)-last_latency.tv_nsec);
	}
}

static void print_last_rms()
{
	if (last_rms_size != 0)
		printf("%.9f\n", sqrt(last_rms_sqr_sum / last_rms_size));
}

static void print_total_rms()
{
	if (total_rms_size != 0)
		printf("%.9f\n", sqrt(total_rms_sqr_sum / total_rms_size));
}

static void print_dev_info(const struct cras_iodev_info *devs, int num_devs)
{
	unsigned i;

	printf("\tID\tName\n");
	for (i = 0; i < num_devs; i++)
		printf("\t%u\t%s\n", devs[i].idx, devs[i].name);
}

static void print_node_info(const struct cras_ionode_info *nodes, int num_nodes,
			    int is_input)
{
	unsigned i;

	printf("\t ID\tPrio  %4s  Plugged\t Time\tType\t\t Name\n",
	       is_input ? "Gain" : " Vol");
	for (i = 0; i < num_nodes; i++)
		printf("\t%u:%u\t%4zu %5g  %7s %10ld\t%-16s%c%s\n",
		       nodes[i].iodev_idx,
		       nodes[i].ionode_idx,
		       nodes[i].priority,
		       is_input ? nodes[i].capture_gain / 100.0
		       : (double) nodes[i].volume,
		       nodes[i].plugged ? "yes" : "no",
		       (long) nodes[i].plugged_time.tv_sec,
		       nodes[i].type,
		       nodes[i].active ? '*' : ' ',
		       nodes[i].name);
}

static void print_device_lists(struct cras_client *client)
{
	struct cras_iodev_info devs[MAX_IODEVS];
	struct cras_ionode_info nodes[MAX_IONODES];
	size_t num_devs, num_nodes;
	int rc;

	num_devs = MAX_IODEVS;
	num_nodes = MAX_IONODES;
	rc = cras_client_get_output_devices(client, devs, nodes, &num_devs,
					    &num_nodes);
	if (rc < 0)
		return;
	printf("Output Devices:\n");
	print_dev_info(devs, num_devs);
	printf("Output Nodes:\n");
	print_node_info(nodes, num_nodes, 0);

	num_devs = MAX_IODEVS;
	num_nodes = MAX_IONODES;
	rc = cras_client_get_input_devices(client, devs, nodes, &num_devs,
					   &num_nodes);
	printf("Input Devices:\n");
	print_dev_info(devs, num_devs);
	printf("Input Nodes:\n");
	print_node_info(nodes, num_nodes, 1);
}

static void print_selected_nodes(struct cras_client *client)
{
	cras_node_id_t id;

	id = cras_client_get_selected_output(client);
	printf("Selected Output Node: %u:%u\n", dev_index_of(id),
	       node_index_of(id));

	id = cras_client_get_selected_input(client);
	printf("Selected Input Node: %u:%u\n", dev_index_of(id),
	       node_index_of(id));
}

static void print_attached_client_list(struct cras_client *client)
{
	struct cras_attached_client_info clients[MAX_ATTACHED_CLIENTS];
	size_t i;
	int num_clients;

	num_clients = cras_client_get_attached_clients(client,
						       clients,
						       MAX_ATTACHED_CLIENTS);
	if (num_clients < 0)
		return;
	num_clients = min(num_clients, MAX_ATTACHED_CLIENTS);
	printf("Attached clients:\n");
	printf("\tID\tpid\tuid\n");
	for (i = 0; i < num_clients; i++)
		printf("\t%zu\t%d\t%d\n",
		       clients[i].id,
		       clients[i].pid,
		       clients[i].gid);
}

static void print_active_stream_info(struct cras_client *client)
{
	struct timespec ts;
	unsigned num_streams;

	num_streams = cras_client_get_num_active_streams(client, &ts);
	printf("Num active streams: %u\n", num_streams);
	printf("Last audio active time: %llu, %llu\n",
	       (long long)ts.tv_sec, (long long)ts.tv_nsec);
}

static void print_system_volumes(struct cras_client *client)
{
	printf("System Volume (0-100): %zu %s\n"
	       "Capture Gain (%.2f - %.2f): %.2fdB %s\n",
	       cras_client_get_system_volume(client),
	       cras_client_get_system_muted(client) ? "(Muted)" : "",
	       cras_client_get_system_min_capture_gain(client) / 100.0,
	       cras_client_get_system_max_capture_gain(client) / 100.0,
	       cras_client_get_system_capture_gain(client) / 100.0,
	       cras_client_get_system_capture_muted(client) ? "(Muted)" : "");
}

static void audio_debug_info(struct cras_client *client)
{
	const struct audio_debug_info *info;
	int i, j;

	info = cras_client_get_audio_debug_info(client);
	if (!info)
		return;

	printf("Audio Debug Stats:\n");
	printf("-------------devices------------\n");
	printf("output dev: %s\n", info->output_dev_name);
	printf("%u %u %u\n",
	       (unsigned int)info->output_buffer_size,
	       (unsigned int)info->output_used_size,
	       (unsigned int)info->output_cb_threshold);
	printf("input dev: %s\n", info->input_dev_name);
	printf("%u %u %u\n",
	       (unsigned int)info->input_buffer_size,
	       (unsigned int)info->input_used_size,
	       (unsigned int)info->input_cb_threshold);
	printf("-------------stream_dump------------\n");
	if (info->num_streams > MAX_DEBUG_STREAMS)
		return;

	for (i = 0; i < info->num_streams; i++) {
		int channel;
		printf("stream: %llx\n",
		       (unsigned long long)info->streams[i].stream_id);
		printf("%d %u %u %u %u %u %u\n",
		       info->streams[i].direction,
		       (unsigned int)info->streams[i].buffer_frames,
		       (unsigned int)info->streams[i].cb_threshold,
		       (unsigned int)info->streams[i].min_cb_level,
		       (unsigned int)info->streams[i].frame_rate,
		       (unsigned int)info->streams[i].num_channels,
		       (unsigned int)info->streams[i].num_cb_timeouts);
		for (channel = 0; channel < CRAS_CH_MAX; channel++)
			printf("%d ", info->streams[i].channel_layout[channel]);
		printf("\n");
	}

	printf("Audio Thread Event Log:\n");

	j = info->log.write_pos;
	for (i = 0; i < AUDIO_THREAD_EVENT_LOG_SIZE; i++) {
		printf("%x ", info->log.log[j]);
		j++;
		j %= AUDIO_THREAD_EVENT_LOG_SIZE;
	}
	printf("\n");

	/* Signal main thread we are done after the last chunk. */
	pthread_mutex_lock(&done_mutex);
	pthread_cond_signal(&done_cond);
	pthread_mutex_unlock(&done_mutex);
}

static int start_stream(struct cras_client *client,
			cras_stream_id_t *stream_id,
			struct cras_stream_params *params,
			float stream_volume)
{
	int rc;

	file_buf_read_offset = 0;

	rc = cras_client_add_stream(client, stream_id, params);
	if (rc < 0) {
		fprintf(stderr, "adding a stream %d\n", rc);
		return rc;
	}
	return cras_client_set_stream_volume(client, *stream_id, stream_volume);
}

static int run_unified_io_stream(struct cras_client *client,
				 size_t block_size,
				 size_t rate,
				 size_t num_channels)
{
	struct cras_stream_params *params;
	cras_stream_id_t stream_id = 0;

	aud_format = cras_audio_format_create(SND_PCM_FORMAT_S16_LE, rate,
					      num_channels);
	if (aud_format == NULL)
		return -ENOMEM;

	params = cras_client_unified_params_create(CRAS_STREAM_UNIFIED,
						   block_size,
						   0,
						   0,
						   0,
						   unified_samples,
						   stream_error,
						   aud_format);
	if (params == NULL)
		return -ENOMEM;

	cras_client_run_thread(client);

	keep_looping = start_stream(client, &stream_id, params, 1.0) == 0;

	while (keep_looping) {
		sleep(1);
	}

	return 0;
}

static int parse_channel_layout(char *channel_layout_str,
				int8_t channel_layout[CRAS_CH_MAX])
{
	int i = 0;
	char *chp;

	chp = strtok(channel_layout_str, ",");
	while (chp && i < CRAS_CH_MAX) {
		channel_layout[i++] = atoi(chp);
		chp = strtok(NULL, ",");
	}

	return 0;
}

static int run_file_io_stream(struct cras_client *client,
			      int fd,
			      enum CRAS_STREAM_DIRECTION direction,
			      size_t block_size,
			      size_t rate,
			      size_t num_channels)
{
	int rc, tty;
	struct cras_stream_params *params;
	cras_unified_cb_t aud_cb;
	cras_stream_id_t stream_id = 0;
	int stream_playing = 0;
	int *pfd = malloc(sizeof(*pfd));
	*pfd = fd;
	fd_set poll_set;
	struct timespec sleep_ts;
	float volume_scaler = 1.0;
	size_t sys_volume = 100;
	long cap_gain = 0;
	int mute = 0;
	int8_t layout[CRAS_CH_MAX];

	/* Set the sleep interval between latency/RMS prints. */
	sleep_ts.tv_sec = 1;
	sleep_ts.tv_nsec = 0;

	/* Open the pipe file descriptor. */
	rc = pipe(pipefd);
	if (rc == -1) {
		perror("failed to open pipe");
		return -errno;
	}

	/* Reset the total RMS value. */
	total_rms_sqr_sum = 0;
	total_rms_size = 0;

	if (direction == CRAS_STREAM_INPUT ||
	    direction == CRAS_STREAM_POST_MIX_PRE_DSP)
		aud_cb = got_samples;
	else
		aud_cb = put_samples;

	if (fd == 0) {
		if (direction != CRAS_STREAM_OUTPUT)
			return -EINVAL;
		aud_cb = put_stdin_samples;
	}

	aud_format = cras_audio_format_create(SND_PCM_FORMAT_S16_LE, rate,
					      num_channels);
	if (aud_format == NULL)
		return -ENOMEM;

	if (channel_layout) {
		/* Set channel layout to format */
		parse_channel_layout(channel_layout, layout);
		cras_audio_format_set_channel_layout(aud_format, layout);
	}

	params = cras_client_unified_params_create(direction,
						   block_size,
						   0,
						   0,
						   pfd,
						   aud_cb,
						   stream_error,
						   aud_format);
	if (params == NULL)
		return -ENOMEM;

	cras_client_run_thread(client);

	stream_playing =
		start_stream(client, &stream_id, params, volume_scaler) == 0;

	tty = open("/dev/tty", O_RDONLY);

	// There could be no terminal available when run in autotest.
	if (tty == -1)
		perror("warning: failed to open /dev/tty");

	while (keep_looping) {
		char input;
		int nread;

		FD_ZERO(&poll_set);
		if (tty >= 0)
			FD_SET(tty, &poll_set);
		FD_SET(pipefd[0], &poll_set);
		pselect(max(tty, pipefd[0]) + 1,
			&poll_set,
			NULL,
			NULL,
			show_latency || show_rms ? &sleep_ts : NULL,
			NULL);

		if (stream_playing && show_latency)
			print_last_latency();

		if (stream_playing && show_rms)
			print_last_rms();

		if (tty < 0 || !FD_ISSET(tty, &poll_set))
			continue;

		nread = read(tty, &input, 1);
		if (nread < 1) {
			fprintf(stderr, "Error reading stdin\n");
			return nread;
		}
		switch (input) {
		case 'q':
			terminate_stream_loop();
			break;
		case 's':
			if (stream_playing)
				break;

			/* If started by hand keep running after it finishes. */
			exit_after_done_playing = 0;

			stream_playing = start_stream(client,
						      &stream_id,
						      params,
						      volume_scaler) == 0;
			break;
		case 'r':
			if (!stream_playing)
				break;
			cras_client_rm_stream(client, stream_id);
			stream_playing = 0;
			break;
		case 'u':
			volume_scaler = min(volume_scaler + 0.1, 1.0);
			cras_client_set_stream_volume(client,
						      stream_id,
						      volume_scaler);
			break;
		case 'd':
			volume_scaler = max(volume_scaler - 0.1, 0.0);
			cras_client_set_stream_volume(client,
						      stream_id,
						      volume_scaler);
			break;
		case 'k':
			sys_volume = min(sys_volume + 1, 100);
			cras_client_set_system_volume(client, sys_volume);
			break;
		case 'j':
			sys_volume = sys_volume == 0 ? 0 : sys_volume - 1;
			cras_client_set_system_volume(client, sys_volume);
			break;
		case 'K':
			cap_gain = min(cap_gain + 100, 5000);
			cras_client_set_system_capture_gain(client, cap_gain);
			break;
		case 'J':
			cap_gain = cap_gain == -5000 ? -5000 : cap_gain - 100;
			cras_client_set_system_capture_gain(client, cap_gain);
			break;
		case 'm':
			mute = !mute;
			cras_client_set_system_mute(client, mute);
			break;
		case '@':
			print_device_lists(client);
			break;
		case '#':
			print_attached_client_list(client);
			break;
		case 'v':
			printf("Volume: %zu%s Min dB: %ld Max dB: %ld\n"
			       "Capture: %ld%s Min dB: %ld Max dB: %ld\n",
			       cras_client_get_system_volume(client),
			       cras_client_get_system_muted(client) ? "(Muted)"
								    : "",
			       cras_client_get_system_min_volume(client),
			       cras_client_get_system_max_volume(client),
			       cras_client_get_system_capture_gain(client),
			       cras_client_get_system_capture_muted(client) ?
						"(Muted)" : "",
			       cras_client_get_system_min_capture_gain(client),
			       cras_client_get_system_max_capture_gain(client));
			break;
		case '\n':
			break;
		default:
			printf("Invalid key\n");
			break;
		}
	}

	if (show_total_rms)
		print_total_rms();

	cras_client_stop(client);

	cras_audio_format_destroy(aud_format);
	cras_client_stream_params_destroy(params);
	free(pfd);

	close(pipefd[0]);
	close(pipefd[1]);

	return 0;
}

static int run_capture(struct cras_client *client,
		       const char *file,
		       size_t block_size,
		       size_t rate,
		       size_t num_channels,
		       int loopback)
{
	int fd = open(file, O_CREAT | O_RDWR | O_TRUNC, 0666);
	if (fd == -1) {
		perror("failed to open file");
		return -errno;
	}

	run_file_io_stream(
		client, fd,
		loopback ? CRAS_STREAM_POST_MIX_PRE_DSP : CRAS_STREAM_INPUT,
		block_size, rate, num_channels);

	close(fd);
	return 0;
}

static int run_playback(struct cras_client *client,
			const char *file,
			size_t block_size,
			size_t rate,
			size_t num_channels)
{
	int fd;

	file_buf = malloc(1024*1024*4);
	if (!file_buf) {
		perror("allocating file_buf");
		return -ENOMEM;
	}

	fd = open(file, O_RDONLY);
	if (fd == -1) {
		perror("failed to open file");
		return -errno;
	}
	file_buf_size = read(fd, file_buf, 1024*1024*4);

	run_file_io_stream(client, fd, CRAS_STREAM_OUTPUT,
			   block_size, rate, num_channels);

	close(fd);
	return 0;
}

static void print_server_info(struct cras_client *client)
{
	cras_client_run_thread(client);
	cras_client_connected_wait(client); /* To synchronize data. */
	print_system_volumes(client);
	print_device_lists(client);
	print_selected_nodes(client);
	print_attached_client_list(client);
	print_active_stream_info(client);
}

static void print_audio_debug_info(struct cras_client *client)
{
	struct timespec wait_time;

	cras_client_run_thread(client);
	cras_client_connected_wait(client); /* To synchronize data. */
	cras_client_update_audio_debug_info(client, audio_debug_info);

	clock_gettime(CLOCK_REALTIME, &wait_time);
	wait_time.tv_sec += 2;

	pthread_mutex_lock(&done_mutex);
	pthread_cond_timedwait(&done_cond, &done_mutex, &wait_time);
	pthread_mutex_unlock(&done_mutex);
}

static void check_output_plugged(struct cras_client *client, const char *name)
{
	cras_client_run_thread(client);
	cras_client_connected_wait(client); /* To synchronize data. */
	printf("%s\n",
	       cras_client_output_dev_plugged(client, name) ? "Yes" : "No");
}

static void init_sbc_codec()
{
	capture_codec = cras_sbc_codec_create(SBC_FREQ_16000,
					      SBC_MODE_DUAL_CHANNEL,
					      SBC_SB_4,
					      SBC_AM_LOUDNESS,
					      SBC_BLK_8,
					      53);
	playback_codec = cras_sbc_codec_create(SBC_FREQ_16000,
					       SBC_MODE_DUAL_CHANNEL,
					       SBC_SB_4,
					       SBC_AM_LOUDNESS,
					       SBC_BLK_8,
					       53);
}

static struct option long_options[] = {
	{"show_latency",	no_argument, &show_latency, 1},
	{"show_rms",            no_argument, &show_rms, 1},
	{"show_total_rms",      no_argument, &show_total_rms, 1},
	{"select_input",        required_argument,      0, 'a'},
	{"block_size",		required_argument,	0, 'b'},
	{"capture_file",	required_argument,	0, 'c'},
	{"duration_seconds",	required_argument,	0, 'd'},
	{"sbc",                 no_argument,            0, 'e'},
	{"dump_dsp",            no_argument,            0, 'f'},
	{"capture_gain",        required_argument,      0, 'g'},
	{"help",                no_argument,            0, 'h'},
	{"dump_server_info",    no_argument,            0, 'i'},
	{"check_output_plugged",required_argument,      0, 'j'},
	{"loopback_file",	required_argument,	0, 'l'},
	{"num_channels",        required_argument,      0, 'n'},
	{"iodev_index",		required_argument,	0, 'o'},
	{"playback_file",	required_argument,	0, 'p'},
	{"user_mute",           required_argument,      0, 'q'},
	{"rate",		required_argument,	0, 'r'},
	{"reload_dsp",          no_argument,            0, 's'},
	{"mute",                required_argument,      0, 'u'},
	{"volume",              required_argument,      0, 'v'},
	{"set_node_volume",	required_argument,      0, 'w'},
	{"plug",                required_argument,      0, 'x'},
	{"select_output",       required_argument,      0, 'y'},
	{"unified_audio",	no_argument,		0, 'z'},
	{"capture_mute",        required_argument,      0, '0'},
	{"dump_audio_thread",   no_argument,            0, '1'},
	{"channel_layout",      required_argument,      0, '2'},
	{0, 0, 0, 0}
};

static void show_usage()
{
	printf("--sbc - Use sbc codec for playback/capture.\n");
	printf("--show_latency - Display latency while playing or recording.\n");
	printf("--show_rms - Display RMS value of loopback stream.\n");
	printf("--show_total_rms - Display total RMS value of loopback stream at the end.\n");
	printf("--rate <N> - Specifies the sample rate in Hz.\n");
	printf("--num_channels <N> - Two for stereo.\n");
	printf("--channel_layout <layout_str> - Set multiple channel layout.\n");
	printf("--iodev_index <N> - Set active iodev to N.\n");
	printf("--capture_file <name> - Name of file to record to.\n");
	printf("--playback_file <name> - Name of file to play, "
	       "\"-\" to playback raw audio from stdin.\n");
	printf("--loopback_file <name> - Name of file to record loopback to.\n");
	printf("--mute <0|1> - Set system mute state.\n");
	printf("--user_mute <0|1> - Set user mute state.\n");
	printf("--capture_mute <0|1> - Set capture mute state.\n");
	printf("--block_size <N> - The number for frames per callback(dictates latency).\n");
	printf("--duration_seconds <N> - Seconds to record or playback.\n");
	printf("--volume <0-100> - Set system output volume.\n");
	printf("--capture_gain <dB> - Set system caputre gain in dB*100 (100 = 1dB).\n");
	printf("--check_output_plugged <output name> - Check if the output is plugged in\n");
	printf("--reload_dsp - Reload dsp configuration from the ini file\n");
	printf("--dump_server_info - Print status of the server.\n");
	printf("--dump_dsp - Print status of dsp to syslog.\n");
	printf("--unified_audio - Pass audio from input to output with unified interface.\n");
	printf("--plug <N>:<M>:<0|1> - Set the plug state (0 or 1) for the"
	       " ionode with the given index M on the device with index N\n");
	printf("--select_output <N>:<M> - Select the ionode with the given id as preferred output\n");
	printf("--select_input <N>:<M> - Select the ionode with the given id as preferred input\n");
	printf("--set_node_volume <N>:<M>:<0-100> - Set the volume of the ionode with the given id\n");
	printf("--dump_audio_thread - Dumps audio thread info.\n");
	printf("--help - Print this message.\n");
}

int main(int argc, char **argv)
{
	struct cras_client *client;
	int c, option_index;
	size_t block_size = NOT_ASSIGNED;
	size_t rate = 48000;
	uint32_t iodev_index = 0;
	int set_iodev = 0;
	size_t num_channels = 2;
	float duration_seconds = 0;
	const char *capture_file = NULL;
	const char *playback_file = NULL;
	const char *loopback_file = NULL;
	int rc = 0;
	int run_unified = 0;

	option_index = 0;

	rc = cras_client_create(&client);
	if (rc < 0) {
		fprintf(stderr, "Couldn't create client.\n");
		return rc;
	}

	rc = cras_client_connect(client);
	if (rc) {
		fprintf(stderr, "Couldn't connect to server.\n");
		goto destroy_exit;
	}

	while (1) {
		c = getopt_long(argc, argv, "o:s:",
				long_options, &option_index);
		if (c == -1)
			break;
		switch (c) {
		case 'c':
			capture_file = optarg;
			break;
		case 'e':
			init_sbc_codec();
			break;
		case 'p':
			playback_file = optarg;
			break;
		case 'l':
			loopback_file = optarg;
			break;
		case 'b':
			block_size = atoi(optarg);
			break;
		case 'r':
			rate = atoi(optarg);
			break;
		case 'n':
			num_channels = atoi(optarg);
			break;
		case 'o':
			set_iodev = 1;
			iodev_index = atoi(optarg);
			break;
		case 'd':
			duration_seconds = atof(optarg);
			break;
		case 'u': {
			int mute = atoi(optarg);
			rc = cras_client_set_system_mute(client, mute);
			if (rc < 0) {
				fprintf(stderr, "problem setting mute\n");
				goto destroy_exit;
			}
			break;
		}
		case 'q': {
			int mute = atoi(optarg);
			rc = cras_client_set_user_mute(client, mute);
			if (rc < 0) {
				fprintf(stderr, "problem setting mute\n");
				goto destroy_exit;
			}
			break;
		}
		case 'v': {
			int volume = atoi(optarg);
			volume = min(100, max(0, volume));
			rc = cras_client_set_system_volume(client, volume);
			if (rc < 0) {
				fprintf(stderr, "problem setting volume\n");
				goto destroy_exit;
			}
			break;
		}
		case 'g': {
			long gain = atol(optarg);
			rc = cras_client_set_system_capture_gain(client, gain);
			if (rc < 0) {
				fprintf(stderr, "problem setting capture\n");
				goto destroy_exit;
			}
			break;
		}
		case 'j':
			check_output_plugged(client, optarg);
			break;
		case 's':
			cras_client_reload_dsp(client);
			break;
		case 'f':
			cras_client_dump_dsp_info(client);
			break;
		case 'i':
			print_server_info(client);
			break;
		case 'h':
			show_usage();
			break;
		case 'z':
			run_unified = 1;
			break;
		case 'x': {
			int dev_index = atoi(strtok(optarg, ":"));
			int node_index = atoi(strtok(NULL, ":"));
			int value = atoi(strtok(NULL, ":")) ;
			cras_node_id_t id = cras_make_node_id(dev_index,
							      node_index);
			enum ionode_attr attr = IONODE_ATTR_PLUGGED;
			cras_client_set_node_attr(client, id, attr, value);
			break;
		}
		case 'y':
		case 'a': {
			int dev_index = atoi(strtok(optarg, ":"));
			int node_index = atoi(strtok(NULL, ":"));
			cras_node_id_t id = cras_make_node_id(dev_index,
							      node_index);

			enum CRAS_STREAM_DIRECTION direction = (c == 'y') ?
				CRAS_STREAM_OUTPUT : CRAS_STREAM_INPUT;
			cras_client_select_node(client, direction, id);
			break;
		}
		case 'w': {
			const char *s;
			int dev_index;
			int node_index;
			int value;

			s = strtok(optarg, ":");
			if (!s) {
				show_usage();
				return -EINVAL;
			}
			dev_index = atoi(s);

			s = strtok(NULL, ":");
			if (!s) {
				show_usage();
				return -EINVAL;
			}
			node_index = atoi(s);

			s = strtok(NULL, ":");
			if (!s) {
				show_usage();
				return -EINVAL;
			}
			value = atoi(s) ;

			cras_node_id_t id = cras_make_node_id(dev_index,
							      node_index);

			cras_client_set_node_volume(client, id, value);
			break;
		}
		case '0': {
			int mute = atoi(optarg);
			rc = cras_client_set_system_capture_mute(client, mute);
			if (rc < 0) {
				fprintf(stderr, "problem setting mute\n");
				goto destroy_exit;
			}
			break;
		}
		case '1':
			print_audio_debug_info(client);
			break;
		case '2':
			channel_layout = optarg;
			break;
		default:
			break;
		}
	}

	if (set_iodev) {
		rc = cras_client_switch_iodev(client,
					      CRAS_STREAM_TYPE_DEFAULT,
					      iodev_index);
		if (rc < 0)
			goto destroy_exit;
	}

	duration_frames = duration_seconds * rate;
	if (block_size == NOT_ASSIGNED)
		block_size = get_block_size(PLAYBACK_BUFFERED_TIME_IN_US, rate);

	if (run_unified)
		rc = run_unified_io_stream(client, block_size,
					   rate, num_channels);
	else if (capture_file != NULL)
		rc = run_capture(client, capture_file,
				block_size, rate, num_channels, 0);
	else if (playback_file != NULL)
		if (strcmp(playback_file, "-") == 0)
			rc = run_file_io_stream(client, 0, CRAS_STREAM_OUTPUT,
					block_size, rate, num_channels);
		else
			rc = run_playback(client, playback_file,
					block_size, rate, num_channels);
	else if (loopback_file != NULL)
		rc = run_capture(client, loopback_file,
				 block_size, rate, num_channels, 1);

destroy_exit:
	cras_client_destroy(client);
	if (capture_codec)
		cras_sbc_codec_destroy(capture_codec);
	if (playback_codec)
		cras_sbc_codec_destroy(playback_codec);
	return rc;
}


The outdoor banner material selection available from Ultraflex Systems is second to none. We have PVC and specialty substrates that produce outstanding graphics for any outdoor application. In fact, the first product we introduced over 25 years ago was our outdoor banner material Ultralon. It was an innovative product that changed the industry forever. We are now recognized as the leader in the digital media industry with over 60 different digital print materials and an international team of media experts. We specialize in wide and grand format textile media that comes in widths ranging from 30 inches to 198 inches and are compatible with solvent, eco-solvent, Latex, UV, direct dye and/or dye sublimation printing processes.
All of the products available at Ultraflex Systems are warrantied and have met superior manufacturing standards before being incorporated into our lines. We have over 100,000 rolls of outdoor banner material and other product inventoried in our six North American warehouses. Our warehouse managers always maintain high levels of stock to ensure orders are shipped out quickly and efficiently to meet the needs of our customers. Media samples are available for testing purposes, and sample requests are usually shipped nationally within 3-5 days after being received by our Sample Department. Contact a media specialist today for more information on any of our grand format textile materials or specialty substrates.


text:
LOCATION/TYPE
Select LOCATIONS Africa Egypt Kenya Lesotho Madagascar Morocco Nigeria South Africa Tanzania Americas Antigua and Barbuda Argentina Aruba Barbados Brazil Canada Alberta British Columbia Manitoba New Brunswick Newfoundland and Labrador Nova Scotia Ontario Prince Edward Island Quebec Saskatchewan Chile Colombia Costa Rica Cuba Dominican Republic Ecuador Honduras Jamaica Mexico Nicaragua Panama Peru Saint Lucia Saint Martin U.S. Alabama Alaska Arizona Arkansas California Colorado Connecticut Delaware District of Columbia Florida Georgia Guam Hawaii Idaho Illinois Indiana Iowa Kansas Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota Mississippi Missouri Montana Nebraska Nevada New Hampshire New Jersey New Mexico New York North Carolina North Dakota Ohio Oklahoma Oregon Pennsylvania Puerto Rico Rhode Island South Carolina South Dakota Tennessee Texas Utah Vermont Virgin Islands Virginia Washington West Virginia Wisconsin Wyoming Uruguay Asia China India Israel Japan Jordan Korea Myanmar Philippines Sri Lanka Taiwan Thailand Turkey Vietnam Europe Austria Belgium Bulgaria Croatia Cyprus Czech Republic Denmark Estonia Finland France Germany Greece Iceland Ireland Isle of Man Italy Latvia Lithuania Luxembourg Malta Netherlands Norway Poland Portugal Romania Russia Slovakia Spain Sweden Switzerland U.K. England Northern Ireland Scotland Wales Oceania Australia Mariana Islands New Zealand SOURCES Blogs Editorials General News Letters Opinions Press releases
[ exact phrase in "" • results by date ]
[ Google-powered • results by relevance ]
Add NWW headlines to your site (click here)
« Later Post • News Watch Home • Earlier Post »
filed: September 24, 2012 • England
Villagers: 'We will not stand for this'
Credit: Guardian | www.worksopguardian.co.uk 24 September 2012 ~~
Furious villagers have come together to voice their opposition to the proposed 10 turbine wind farm at Hemswell Cliff.
Back in July, RWE Npower Renewables submitted the application to build the farm on land 13km east of Gainsborough after months of suitability and consultation. The wind farm would stand up to 126.5m tall and would be capable of generating up to 25 megawatts of electricity – enough to meet the average annual consumption of 11,600 homes.
However, many residents in surrounding villages are up in arms about the proposals. Villages of the Cliff Against Turbines (or VOCAT) consists of residents from Hemswell Cliff, Bishop Norton, Snitterby, Willoughton, Blyborough, Caenby, Normanby by Spital and Spital in the Street.
VOCAT chairman Mr Ernest Charles Coleman said that the planned wind farm had 'no redeeming features'.
"We will not stand for this," he said.
"They're going to ruin this beautiful countryside. To the west is the flat Trent Valley, whilst to the east there's the Ancholme Valley which slopes gently down to the Lincolnshore Wolds – a site of outstanding natural beauty."
"These things would be much taller than Lincoln Cathedral and be visible from miles around – the turbines will destroy this wonderful view."
Ernest, a 69-year-old retired naval officer from Bishop Norton who now writes books on history and polar exploration said that the villagers' issues were about much more than aesthetics.
"They just don't work – which is what makes it especially irritating," he said.
"They are going to produce more CO2 than they are supposed to save and contribute to global warming. The very idea that we can get a constant source of energy from something that depends on the wind is ludicrous."
Other factors troubling VOCAT include the historical and archaelogical significance of the area, as well the impact that the turbines will have on birds and low-flying planes and the noise that they produce.
"We're very upset about how this is going ahead – it just isn't democratic. We are the mugs getting stiffed with these things against our will."
Ernest went on: "We like the idea of renewable energy, we want to leave the world a better place for our grandchildren – but this just doesn't work. The planning application has gone in and we will present the committee with a petition which states why this is all wrong."
He added: "People need to realise that this is their countryside and their environment, so please make your voices heard."
Neil Parnell, Developer at RWE npower renewables responded: "Designing a wind farm that is suitable for the area and environment has been at the forefront of our minds as we have been developing the proposed Hemswell Cliff wind farm. As an open and honest developer, we have engaged with the local community and stakeholders throughout to provide updates and to give the opportunity to provide feedback. This feedback has helped shape the final wind farm design."
He continued: "A recent report found that onshore wind supported 8,600 jobs and was worth £548 million to the UK economy at a local, regional and national level in 2011
"Of this figure 1,100 jobs were created at the Local Authority level, worth £84 million."
RWE also argue that wind farms generate electricity approximately 80 per cent of the time and modern turbines are 'highly efficient at converting wind into electricity'.
Neil went on: "The life cycle of a modern turbine indicates that it would have to generate electricity less than 12 months out of its intended life span, up to 25 years, before it produces enough energy to repay that used to manufacture it."
"We have consulted with the MoD and RAF and have designed the proposed Hemswell Cliff Wind Farm in a way that will meet requirements and we have submitted comprehensive assessments looking at the historical and archaeological aspects as well as a detailed wildlife assessment. These assessments will be considered by WLDC before they make their decision."
l VOCAT's next meeting will be at Bishop Norton Village Hall on 20th September at 7pm.
Source: Guardian | www.worksopguardian.co.uk 24 September 2012
This article is the work of the source indicated. Any opinions expressed in it are not necessarily those of National Wind Watch.
The copyright of this article resides with the author or publisher indicated. As part of its noncommercial effort to present the environmental, social, scientific, and economic issues of large-scale wind power development to a global audience seeking such information, National Wind Watch endeavors to observe "fair use" as provided for in section 107 of U.S. Copyright Law and similar "fair dealing" provisions of the copyright laws of other nations. Send requests to excerpt, general inquiries, and comments via e-mail.
[ Short URL: https://wind-watch.org/news/?p=28295 ]

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: The dependency `Mixpanel` is not used in any concrete target I'm trying to add mixpanel plugin into my react-native project.
I'm using these links
react-native-mix panel github
and the integration in xcode is here
mixpanel cocoapods
I followed these instructions:

*

*Install CocoaPods using gem install cocoapods

*If this is your first time using CocoaPods, run pod setup to create a local CocoaPods spec mirror.

*Create a file in your Xcode project called Podfile and add the following line: pod 'Mixpanel'

*Run pod install in your Xcode project directory. CocoaPods should download and install the Mixpanel library, and create a new
Xcode workspace. Open up this workspace in Xcode.

gem install cocoapods

then I run pod setup and create Podfile text file into the project.
then when I run pod install into my bash command line i get this error

The dependency Mixpanel is not used in any concrete target.

A: You first need to run pod init from your react native ios directory. This generates the correct starting podfile, targeting your app correctly.
https://github.com/facebook/react-native/issues/7775

A: I was getting the above error.
So I added the Text file in podfile in below format:
target "MercadoPagoSample" do

source 'https://github.com/CocoaPods/Specs.git'
# Se necesita este parámetro por ser una SDK en swift
use_frameworks!
platform :ios, '9.0'
pod 'MercadoPagoSDK', '3.6.0'
end

Then I was able to update the podfile.

redpajama_set_name: RedPajamaStackExchange


The WordPress ecosystem is vast in its capabilities and we aim to make use of them. People experienced in WordPress or other CMS's and/or PHP, who want to add functionality to the website and engage in some creative projects are welcome.
Want to contribute blogs to Health Rising. We're looking for bloggers to contribute rigorous reports on ME/CFS/FM treatments, research, advocacy, etc.
Love to network? Like to hang around Facebook? Know the ins and outs of Twitter (or want to learn them?). Help Health Rising spread the word about ME/CFS using Social Networking.
We never took marketing in school…and could use some :). Contact us below.


Hey all. I'm a new old guy, who found the forum yesterday while Googling sticking brakes on a Saturn Vue. As you can tell by my screen name, I'm a Mopar guy. I keep this same screen name everywhere I am a forum member. It keeps me from having to remember who I am at what place....lol. I decided to register and drop in every now and then. My wife and I have a 2006 Saturn Vue that we bought new. It's a bright red AWD 3.5 V6. It's the best car either of us has ever owned, and we plan to keep it until the wheels fall off! I do as much of my own work on our cars as possible, and I'm looking forward to soaking up some of y'alls smartness....lol.
Rate the quality of this post and help JDMopar reputation points. Click the reputation button near the bottom left corner of this message box. Thank you!


Here is one tattoo that looks exemplary and shows Marilyn Monroe think so!! She is sultry and stunning without being overly sexual. This lady strikes the same Rosie pose with all the gusto and conviction Rosie did in her day. Fifties style and glamour are often found in pin up girl tattoos art. It is cute, and the blue really stands out. What is better than a beautiful lady to get you through the cold winters in North Dakota? She is wonderfully well done with no color and is simply too cute for words.


A bully will only mistreat others perceived to be weaker. Of course he always picks on kids who are smaller than him. A bully is always a coward.
Prov. Bullies will only intimidate people who are much weaker than they are, because they are afraid of losing a fight. Child: Dad, Joey keeps picking on me. How can I make him stop? Father: Try fighting back. A bully is always a coward. Bill took advantage of the younger children, but he was quiet and docile around the older ones. A bully is always a coward.


text:
package databases

import (
	"github.com/mitchellh/mapstructure"
	"github.com/rackspace/rack/internal/github.com/rackspace/gophercloud"
	"github.com/rackspace/rack/internal/github.com/rackspace/gophercloud/pagination"
)

// Database represents a Database API resource.
type Database struct {
	// Specifies the name of the MySQL database.
	Name string

	// Set of symbols and encodings. The default character set is utf8.
	CharSet string

	// Set of rules for comparing characters in a character set. The default
	// value for collate is utf8_general_ci.
	Collate string
}

// CreateResult represents the result of a Create operation.
type CreateResult struct {
	gophercloud.ErrResult
}

// DeleteResult represents the result of a Delete operation.
type DeleteResult struct {
	gophercloud.ErrResult
}

// DBPage represents a single page of a paginated DB collection.
type DBPage struct {
	pagination.LinkedPageBase
}

// IsEmpty checks to see whether the collection is empty.
func (page DBPage) IsEmpty() (bool, error) {
	dbs, err := ExtractDBs(page)
	if err != nil {
		return true, err
	}
	return len(dbs) == 0, nil
}

// NextPageURL will retrieve the next page URL.
func (page DBPage) NextPageURL() (string, error) {
	type resp struct {
		Links []gophercloud.Link `mapstructure:"databases_links"`
	}

	var r resp
	err := mapstructure.Decode(page.Body, &r)
	if err != nil {
		return "", err
	}

	return gophercloud.ExtractNextURL(r.Links)
}

// ExtractDBs will convert a generic pagination struct into a more
// relevant slice of DB structs.
func ExtractDBs(page pagination.Page) ([]Database, error) {
	casted := page.(DBPage).Body

	var response struct {
		Databases []Database `mapstructure:"databases"`
	}

	err := mapstructure.Decode(casted, &response)
	return response.Databases, err
}

redpajama_set_name: RedPajamaGithub


Finnish death metal group with members of Solothus have decided to take a step ahead, leaving behind their old school death metal past but not entirely. Sepulchral Curse have weaned on the Scandinavian black metal influences and merged it with their irrepressible Finnish brand of death metal, forging a sound that's steely and unique. Reminiscent of early Convulse, Tribulation, Bolzer, Dissection, Dawn, Naglfar, Demigod and Putrevore all rolled into one, the music is extremely refreshing in its scope, majestic in its drive and lethal in its execution. While old school revivalists are dime a dozen, here's one daring to do something different using the time-tested DNA of Finnish death metal without compromising on the heaviness. Classic-tinged, immaculate, and progressive.


swingeing cheap framed wall art wall art sets of 2 framed floral wall art image of cool framed wall art set wall art inexpensive framed wall art.
appealing wall drying rack wall drying rack plans.
appealing grouting wall tile grouting bathroom tile grouting wall tiles bathroom grouting bathroom tile astonishing on bathroom within grouting tile grouting bathroom tile grouting wall tiles in showe.
brave in wall medicine cabinet bathroom medicine cabinets recessed to buy and to put the bathroom medicine cabinets home decor and design ideas mirror medicine cabinet canadian tire.
sheen unfinished wall cabinets unfinished bathroom vanity cabinet lovely creative bloom com page unfinished bathroom wall cabinets unfinished wood kitchen wall cabinets.
enchanting bathroom wall storage cabinets bath wall cabinet bathroom wall cabinets interior design skinny wall cabinet bathroom wall storage cabinets small bathroom wall storage cabinet unit.
cozy wall mount pot rack wall mounted pot rack wall mount pot rack ideas.
beautiful mail wall organizer rustic wall organizer x decorative wood home metal mail holder rustic wall organizer x shelf mail mail wall organizer diy.
swinging wall decor for living room large size of living room contemporary design ideas fun family room ideas living large wall decor ideas living room.
fascinating stone veneer wall stone veneer exterior home wall stone veneer wall cost.


text:
Langley Mustangs Track and Field Club
Gator Group
Volunteer Commitment/Expectations
Mustangs Annual Awards
Photos - 2009 and Prior Years
Club Records/Top 10
Nic Colyn Named to Canada's National Junior Cross Country Team
Athletics Canada named its team of 22 athletes that will compete at the 2016 Pan Am Cross Country Cup in Caraballeda, Venezuela, on March 5th.
Langley Mustang athlete Nic Colyn has been named to Canada's Junior Team that will compete against National Cross-Country teams from the US, Central America and South America. Colyn was named to the team by virtue of his 8th place finish at the Canadian Cross Country Championships held in Kingston, Ontario.
HOME CONTACT US JOIN OUR CLUB


text:
The Neighbourhood Planning (General) Regulations 2012
UK Statutory Instruments
2012 No. 637
Regulation 2
Original (As made)
Open whole Instrument
Open Instrument without Schedules
This is the original version (as it was originally made).
This section has no associated Explanatory Memorandum
2.—(1) Before the end of each review period, the Secretary of State must—
(a)carry out a review of these Regulations (other than regulations 32 and 33 and Schedules 2 and 3),
(b)set out the conclusions of the review in a report, and
(c)publish the report.
(2) The report must in particular—
(a)set out the objectives intended to be achieved by the regulatory system established by these Regulations,
(b)assess the extent to which those objectives are achieved, and
(c)assess whether those objectives remain appropriate and, if so, the extent to which they could be achieved with a system that imposes less regulation.
(3) "Review period" means—
(a)the period of five years beginning with the day on which these Regulations come into force, and
(b)subject to paragraph (4), each successive period of five years.
(4) If a report under this regulation is published before the last day of the review period to which it relates, the following review period is to begin with the day on which that report is published.
PrintThe Whole Instrument
PDF The Whole Instrument
Web page The Whole Instrument
Explanatory Memorandum sets out a brief statement of the purpose of a Statutory Instrument and provides information about its policy objective and policy implications. They aim to make the Statutory Instrument accessible to readers who are not legally qualified and accompany any Statutory Instrument or Draft Statutory Instrument laid before Parliament from June 2004 onwards.
Impact Assessments generally accompany all UK Government interventions of a regulatory nature that affect the private sector, civil society organisations and public services. They apply regardless of whether the regulation originates from a domestic or international source and can accompany primary (Acts etc) and secondary legislation (SIs). An Impact Assessment allows those with an interest in the policy area to understand:
Why the government is proposing to intervene;
The main options the government is considering, and which one is preferred;
How and to what extent new policies may impact on them; and,
The estimated costs and benefits of proposed measures.
the original print PDF of the as made version that was used for the print copy


text:
SPS Blog
/content/sps/gb/en/search-results.html
Volume 1 - Unleash the Power of DC Connectivity
In the past few years, there's been a lot of talk about the digital transformation taking place in a variety of industrial sectors. Technologies like robotics, automation, data analytics, machine learning and artificial intelligence are no longer part of some faraway future, but the very tools many companies are integrating into their daily business practices today. Not only is this evolution helping companies deliver consistently exceptional customer experiences, it's also introducing solutions to traditional challenges while ushering in a new era of process efficiencies.
Nowhere is this truer than in the distribution and fulfillment sector, where e-commerce pressures are driving retailers, wholesalers and third-party logistics providers to accelerate their own digital transformations. But the rate of progress in this transformation is as diverse as the spectrum of fulfillment operations found throughout our industry. No two operations are alike, and the drivers, goals and extent of this transformation are as diverse as the number of SKUs found in a typical e-commerce DC inventory.
Regardless of where our customers sit on this continuum, most have identified "digital transformation" — however they choose to define it — as a stated business objective. Digital transformation is perceived as a vital step in ensuring survival in this ultracompetitive climate, essential for growing a loyal customer base.
Therein lies the challenge.
Consumers want faster, cheaper shipping and accurate, on-time deliveries of an ever-expanding variety of products. As rising service level agreements dictate order fulfillment process improvements, pure-play e-tailers and omnichannel retailers alike are faced with escalating speeds, volumes and complexities in their DCs.
At the same time, rising labor costs and workforce shortages are shared hurdles faced by most, if not all, DC operations. While labor accounts for up to 70 percent of DC operational budgets, industry growth is outpacing the labor pool by a ratio of six to one.
For all of these reasons, limiting unplanned downtime is a top priority. Every hour of downtime results in idle workers, potential overtime costs, shipping and logistics delays, and a variety of ripple effects which can ultimately chip away at profits and service level agreements. It all quickly adds up: as much as $10,000 for an hour of downtime, and much more for extended durations. This is why embracing digital transformation within DC operations is so important. By leveraging powerful new technologies, companies can increase asset and system reliability, maximize DC utilization, and improve productivity. And by doing so, build a fiercely loyal consumer base.
Honeywell Intelligrated is committed to helping our customers make this necessary digital transformation. The Connected Distribution Center is already helping many DC operations achieve competitive advantages by making the necessary transitions:
From manual to automated processes
From preventive to predictive maintenance strategies
From reactive to proactive approaches to meet daily throughput targets
From operational blind spots to comprehensive visibility
From transient data to actionable intelligence
Within these pages you'll learn more about The Connected Distribution Center as well as several other of our enabling technologies, such as robotics, warehouse execution system software, augmented reality glasses and much more.
I sincerely hope this inaugural issue of our On The Move publication helps you explore the technologies available to accelerate your own digital transformation.
PIETER KRYNAUW President, Honeywell Intelligrated
Sign up to receive exclusive communications from Honeywell including product updates, technical information, new offerings, events and news, surveys, special offers, and related topics via telephone, email, and other forms of electronic communication.
About Honeywell
About SPS


text:
Stand Your Ground and Beyond: The Whole Criminal Justice System is Arrayed Against Blacks
by BAR executive editor Glen Ford
The battle against Stand Your Ground laws must be "one front in the war against the legitimacy of a criminal justice system that is fundamentally hostile to the Black presence in the United States." The task requires a mass Movement – one that avoids the clutches of the Black Misleadership Class, which seeks to "divert Black rage down avenues that do not threaten their own relationships with Power."
"A decaying capitalist system offers nothing to ameliorate the Black condition."
In 1926, Langston Hughes asked the question, "What happens to a dream deferred?" The poem, originally titled "Harlem," presciently warned of an explosion among the Black masses, an event that followed nine years later, in Harlem, the first of the modern urban Black rebellions. Hughes was describing a crisis of legitimacy, in which African Americans despaired of a system that promised far more than it delivered.
Another such crisis reared in 1963, says Dr. Anthony Monteiro, professor of African American studies at Temple University, when the "Birmingham movement represented a great alienation of the majority of Black people from the system, itself, and therefore something had to give." The 1963 March on Washington demanded, and eventually got, a Voting Rights Act and a host of democratic reforms that made some aspects of "the dream" accessible to large segments of Black America.
Fifty years later, in the wake of the Zimmerman verdict, according to Monteiro, "the relationship of the Black Nation to the American establishment is a tenuous one, in which a majority of Black people have deep questions about our relationship to the system, itself" – a crisis of legitimacy. But, this time, a decaying capitalist system offers nothing to ameliorate the Black condition. It has already shot its wad by delivering what was, for many Blacks, the greatest prize that the Wall Street plutocracy can offer: a Black presidency. Yet, the "technically Black" man in the White House, as historian Paul Street describes Barack Obama, will do nothing but affirm that he feels the pain of his African American constituents, since "a jury has spoken."
"The verdict reflects the unreconstructed worldview of white America."
The broad masses of Black people see clearly – with horror – that the system, itself, has spoken, and that the verdict reflects the unreconstructed worldview of white America, two-thirds of whom view Trayvon Martin's killing as justifiable – which means, quite simply, that any Black life can justifiably be taken. How can we live with these people? This existential question has confronted every generation since there has been such a thing as African Americans, and once again assumes its place of primacy in the Black consciousness.
The Zimmerman jury rendered a verdict on America, one that confirms Malcolm X's 1964 assessment: "I don't see any American dream. I see an American nightmare!" The spread of Stand Your Ground laws – murder-with-impunity legislation – to nearly half the states of the Union signals that a new Confederacy has risen in which "coon hunting" is always in season. Mass Black incarceration, the collective white response to the Black Freedom Movement of the Sixties, has proven insufficient to satisfy mass white passions to expunge Black people from the national landscape – to somehow, even at this late stage in America's demographic development, reestablish the United States as a White Man's Country.
Before the Zimmerman verdict, and the favorable mass white response, it was possible for the accommodationists of the Black Misleadership Class to practice the useless politics of "ceaselessly commemorating the victories of the Sixties," as BAR's Bruce Dixon describes them. Now they must hustle to weather the system's crisis of legitimacy by diverting Black rage down avenues that do not threaten their own relationships with Power.
"Police state oppression has intensified, especially for poorer Blacks."
Stand Your Ground laws are the easy target. The current crop of so-called "Shoot First" legislation first took root in Florida, a project of the National Rifle Association (NRA) and the American Legislative Exchange Council (ALEC), in 2005 – two years before Barack Obama announced his candidacy for president. This is noteworthy, since pundits of both races attempt to link the laws to white fear of a Black man in the White House. Such an analysis removes Stand Your Ground from the two generations-long national criminal justice offensive against Black people. Things have not been "getting better" for African Americans under the U.S. criminal justice system, as Barack Obama claims. Rather, police state oppression has intensified, especially for poorer Blacks.
It should never be forgotten that nearly half the Congressional Black Caucus supported the 1986 drug law that established a 100:1 sentencing ratio for crack versus powdered cocaine. The Black Misleadership Class of accommodationists and deal makers have failed to honor even the vestiges of the old, intra-Black social compact, by which they were allowed to speak for The Race while indulging in their individual strivings as long as they looked out for the interests of the rest of us. They can be expected to perform no better, in the current crisis. This month's 50th anniversary of the March on Washington, overseen by Al Sharpton and the NAACP, will mix celebration of past victories with apologies for Obama, who has presided over economic catastrophe for African Americans and completed the erasure of any semblance of due process and the rule of law for everyone.
The young people of Dream Defenders, presently occupying Florida's governor's office, understand that Stand Your Ground laws are part of the larger problem. "The media is not telling the full story," said Steven Pargett, a Dream Defender spokesperson, in Tallahassee. He says the teach-in is working on "a full legislative package to challenge the criminalization of our generation," including the school to prison pipeline.
"The presumption of innocence is no match for pervasive assumptions of collective Black guilt."
That's a start. The central problem with the American criminal justice system is that white supremacist assumptions are deeply embedded in its operations and deliberations. The presumption of innocence is no match for pervasive assumptions of collective Black guilt, which are manifest at every stage of the system, beginning with police hyper-surveillance of Black communities – the intake valve that leads inexorably to mass Black incarceration and the extrajudicial murder of Blacks on the streets, mainly by cops but occasionally by George Zimmermans.
The Age of Mass Black Incarceration, now entering its third generation, has spawned successive layers of repressive laws, police practices, and prosecutorial and judicial behavior that have effectively eviscerated Black people's Constitutional rights. Our communities are Constitution-free zones, and the stigma of guilt attaches to each of our persons. White electorates reward those who put Black people – as a group – on perpetual lockdown.
It must be stressed that this reign of criminal justice terror has taken place in the absence of any Black mass movement worthy of the name. I believe it has occurred precisely because there is no such movement – that the forces of white supremacy have been emboldened by Black passivity.
It is, of course, necessary to challenge Stand Your Ground Laws, but this must be just one front in the war against the legitimacy of a criminal justice system that is fundamentally hostile to the Black presence in the United States. What is required is a mass movement that does not accept the verdict of white people; that speaks loudly in the language of the street: Get up off of us!
If white fear of Blacks is justification for an oppressive criminal justice system, then let's give them something to really be afraid of. The response could not possibly be worse than the whipping we have taken so passively, for the last 40 years.


text:
Sammy Oziti (ur. 1 stycznia 1983) – nigeryjska zapaśniczka walcząca w stylu wolnym.

Zajęła 23 miejsce na mistrzostwach świata w 2006. Mistrzyni igrzysk afrykańskich w 2003 i druga w 2007. Sześciokrotna medalistka mistrzostw Afryki w latach 2006 – 2012. Mistrzyni Wspólnoty Narodów w 2005 i 2013 roku.

Przypisy

Nigeryjscy zapaśnicy
Urodzeni w 1983

redpajama_set_name: RedPajamaWikipedia


Technical analysis of the 2014 FIFA World Cup Brazil™ was the focal point of the FIFA/UEFA Conference for National Coaches and Technical Directors, which took place in St. Petersburg, Russia, from 16-17 September.
Furthermore, Low attributed a large portion of the triumph to youth coaches, without whose efforts such an achievement would not have been possible. "Youth coaches create world champions," he said, pointing out that the work done at grassroots level was a result of the successful new structures - including the so-called 'Performance Centres' - implemented by the German Football Association (DFB) in the wake of the difficulties the country's national side had around the turn of the century.
Fabio Capello had similar thoughts as his Russia side gained valuable know-how ahead of the World Cup to be staged in the country in 2018. Meanwhile, Vicente Del Bosque, coach of reigning European champions Spain, praised Germany as "a fantastic example of patience", and said that "individual players can make the difference but what set Germany apart was that they won as a team".
England's Roy Hodgson and Croatia's Niko Kovac both learned much from the tournament despite their respective teams' early exits, while Kovac, the second-youngest coach at Brazil 2014, spoke of the challenges of managing players who had been his team-mates just months earlier.
Fewer injuries thanks to Fair PlayThe second day of the conference focused on medical issues and refereeing. Jiri Dvorak, FIFA's Chief Medical Officer, looked back on the World Cup from a medical perspective and gave a comprehensive explanation of the procedure for drug testing both before and during the tournament. Massimo Busacca, Head of the FIFA Refereeing Department, described the process of selecting and preparing officials for the World Cup. Both speakers highlighted the topic of Fair Play and the fact that there were 40 per cent fewer injuries in Brazil than there were four years earlier in South Africa.* *To conclude matters, Alex Horne, general secretary of the English FA, explained the new structure of the International Football Association Board (IFAB) and also clarified how coaches can actively contribute their proposals.
After two intense days packed with new ideas and information, the national team coaches will return to their sides with fresh insights, and will no doubt incorporate some of them into their work.
The conferences for the three outstanding continental associations are to take place at the end of September and the end of October. From 30 September to 1 October, FIFA, alongside African football's governing body CAF, will stage a Technical Conference in Cairo. From 29-31 October the last conference for member associations of Asia's AFC and Oceania's OFC will be held in Kuala Lumpur.


text:
Tag: Belgium
Basketball-EM | Finest points series in three decades: Doncic additionally covers Nowitzki
By Washais
Slovenia's basketball superstar Luka Dončić continues to tackle his records at the European Championship.
The 23-year-old structure actor of the Dallas Mavericks, who led the European champ to the quarter-finals with an 88:72 over Belgium in Berlin, gave a novelty in the past 30 EM years with his 35 factors: it was his 3rd 35-point game
in collection.
Dončić had formerly accomplished 36 points against Germany on Tuesday and 47 against France on Wednesday.
In basic, there were only 2 gamers in the European Championship history in Dončić in Boron Jam chi as well as Nikos Galois that made three 35-point games in collection.
Despite solid events in 2001 as well as 2005, Dirk Nowitzki is not one of them.
The Slovenian Dončić became part of the European champion team 5 years ago.
During that time, Moran Tragic, who is now part of the team, was still the top protagonist.
In Dončić, the Serbs Nikola Jokić as well as the Greek Giannis Antetokounmpo, three of the most effective NBA professionals are stood for at the European Champion.
Assisted trip broadened: second phase success for van Aert
By Sean Chu
On both days earlier, Van Aert needed to be satisfied with second area after his opening success. It was only quickly prior to the coating line in Chaintré that area was four outliers who had actually worked out after nearly 30 kilometers after the start.
Catteneo and Roglic 63 or 66 secs back
5. Phase of Thizy-les-Bourgs/France-Chaintre/France (162.30 km):.
total score solitary, since the fifth stage:.
hill rating, stood after the fifth stage:.
team position, stood after the fifth phase:.
sprint rating, stood after the fifth stage:.
The 27-year-old Belgian insisted himself on Thursday after 162.3 kilometers from Thizy-les-Bourgs to Chaintré in the sprint against his compatriot Jordi Meeus and also the British Ethan Hayter.
In the overall ranking, Van Aert leads 63 secs ahead of Mattia Cattaneo from Italy and at 66 on his Slovenian Jumbo Visma colleague Primoz Roglic.
The greatly busy Globe excursion race with the southeast of France lasts until June 12th. The Dauphiné trip commonly works as a fine-tuning for the Trip de France, which begins this year on July 1st in Denmark's funding Copenhagen.
1. Wout van Aert (Belgium)- Jumbo-Visma 3:38:35 hours; 2. Jordi Meeus (Belgium)- Bora-Hansgrohe + 0 seconds; 3. Ethan Hayter (Great Britain)- ineos Grenadier; 4. Edvald Boasson Hagen (Norway) team complete power; 5. Hugo Page (France)- Wanty-Gobert; 6. Jasper Stuyven (Belgium)- Trek-Segafredo; 7. Andrea Bagioli (Italy)- Quick-Step Alpha Vinyl; Jan 8 Bakelants (Belgium)- Wanty-Gobert; 9. Matis Louvel (France) team Arkea-Samsic; 10. Juan Sebastian Molano Benavides (Colombia)- Uae Team Emirates;… 17. Nils Politt (Hürth)- bora-Hansgrohe; 52. Simon Geschke (Freiburg im Breisgau)- Cofidis; 103. Miguel Heidemann (Trier)- B & B Hotels P/B KTM + 2:43 min.; 120. Jannik Steimle (Weilheim)- quick-Step Alpha Vinyl + 5:26; 137. Marco Brenner (Ansbach) team DSM + 11:57; 138. Leon Heinschke (Cottbus) team DSM.
Juan Ayuso Pesquera (Spain)- Uae Team Emirates + 1:58; 9. Marco Brenner (Ansbach) team DSM + 25:06; 132. Leon Heinschke (Cottbus) team DSM + 1:01:52 hrs.
1. Pierre Rolland (France)- B & B Hotels P/B KTM 17 PKT.; 2. Alexis Vuillermoz (France) team complete power 7; 3. Sebastian Schönberger (Austria)- B & B Hotels P/B KTM 7; 4. David Gaudu (France)- Groupama-FDJ 5; 5. Xandres Vervlinge (Belgium)- Lotto-Soudal 4; 6 Jan Bakelants (Belgium)- Wanty-Gobert 4; 7. Maxime Bouet (France) team Arkea-Samsic 4; 8. Laurens Huys (Belgium)- Wanty-Gobert 4; 9. Wout van Aert (Belgium)- Jumbo-Visma 3; 10. Anders Skaarseth (Norway)- U-X Pro Cycling Team 3.
Edvald Boasson Hagen (Norway) team complete energy 34; 5. Kevin Vermaerke (U.S.A.) team DSM 28; 6. Alexis Vuillermoz (France) team overall energy 25; 10.
1. Jumbo-Visma (Netherlands) 51:16:41 hrs; 2. Ineos Grenadiers (Great Britain) + 23 seconds; 3. Quick-Step Alpha Vinyl (Belgium) + 2:40 min.; 4. Bahrain Victorious (Bahrain) + 3:28; 5. Movistar team (Spain) + 4:25; 6. Groupama-FDJ (France) + 4:53; 7. Bora Hansgrohe (Germany) + 5:10; 8. UAE Team Emirates (United Arab Emirates) + 5:22; 9. Trek-Segafredo (United States) + 6:24; 10. Wanty-Gobert (Belgium) + 6:40;… 20. Team DSM (Germany) + 20:26.
Matis Louvel (France) team Arkea-Samsic; 10. Alexis Vuillermoz (France) team total power 7; 3. Maxime Bouet (France) team Arkea-Samsic 4; 8. Edvald Boasson Hagen (Norway) team complete power 34; 5. Alexis Vuillermoz (France) team overall energy 25; 10.


What is the Most Popular Tourist Attraction in the World?
Las Vegas is the most popular tourist attraction in the world followed closely by Times Square and Central Park. All three are in the United States.
The Las Vegas Strip In The US Is The World's Most Popular Tourist Destination With 39,668,221 Annual Visitors.
Flyers, print media, television ads, and even giant billboards sell tourist attractions and tourist destinations. Many countries promote the unique natural beauty of their tourist attractions as summer vacation destinations. These may be beaches or national parks. Cultural destinations, museums, gardens and historic structures are being advertised as tourist destinations. Legendary places, arts and crafts communities, ethnic communities, island resorts, landmarks, haunted places, and even UFO crash sites are also marketed with the same intent.
Tourist revenues are a significant source of income for a country. The United States alone has been a major tourist destination for Asians and Europeans. The Las Vegas Strip in Nevada, USA, tops the list of the most visited tourist attractions in the world with 39,668,221 visitors enjoying its casinos and theaters annually. Las Vegas has also been putting on more family-oriented attractions and shows to increase its visitor counts. Second on the list is Times Square in New York City, US, with an annual visitor count of 39,200,000 tourists attending Broadway shows, museums, shopping and watching its Ball drop every New Year's Eve. Third on the list is Central Park located in New York City, US, with a yearly visitor count of 37,500,000 tourists walking its trails, gardens, and mall. Reasons why these places, and other tourist destinations, are so popular with tourists may be due to the location, mix of business and pleasure, uniqueness, novelty, and family-oriented attractions. Disneyland attractions also appear to be major tourist attractants as many of them feature on the list of the world's most popular tourist attractions. The appeal of the Disneyworld destinations to the entire family could be one of the reasons why they are so popular. A few cultural and historical heritage centers like Istanbul's Grand Bazaar and the Forbidden City of China, also feature on the list.
Many factors promote the tourist visitation of a place. The foremost are safety and universal appeal. Tourist destination suitable for people of all ages, and all tastes are most visited. Accessibility is another important factor and as evident from the list, it is clear that all the popular tourist destinations are either located in the heart of major world cities or are easily reached from nearby urban centers. Thus, as long these factors hold true, the below-listed tourist destinations will continue to draw massive crowds, boosting the pride and income of their respective countries.


text:
Q: Upper to Lower Case Conversion View of Problem
Write an LC-3 assembly language program to convert a letter in ASCII from upper case to lower case.  The letter (in ASCII) to be converted is stored at memory address 0x4000, and is provided in the code window below (it's the letter 'S').  The result should be stored in register 6 (R6) and also saved into memory location 0x4001.  Hint:  Due to the limited length (5 bits) of the (sign-extended) immediate field, you need more than one operate instruction to perform the conversion.
Edit:
Every time I try and run my program it gives me the same error, essentially stating that I have not done anything in the first place, I think there is an issue with the way in which I am getting my memory addresses in the first place, however, I am not sure.

A: If you look at this table you will find that lowercase characters can be described like so:
the first 3 bits are always 010.
the rest of the bits signify the letter.
If you replace the first 3 bits for 010, you will get lowercase letters.
So, you need to replace the first 3 bits of the register that holds "S" with (010) to get "s".
What this code does is toggle the third bit. Uppercase thus becomes lowercase.
.orig x3000
; XOR:
; field is R0
; R1 is mask of bits to toggle
; R2 is scratch
LDI R0, 0x4000 ; load whatever is at x4000 into R0
LD R1, #0b00100000 ;third bit
NOT R2, R0
AND R2, R2, R1
NOT R1, R1
AND R0, R0, R1
ADD R0, R0, R2
LDI R6, R0 ;store result in R6
STI R6, .FILL x4001; store result in x4001
HALT


We have a hugely popular order to provide a better. Did you know you are to get a Nike discount code in the UK Below are a few of the never miss a deal from your favourite retailer. Posted on - Vehicles with part of a worldwide community ofsavvy shoppers, working hard to make sure you a check-up service is also everyday life. It was generally well-received, so. Up to 12 friends, relatives, code within your shopping basket them will expire soon.
Customers can enjoy these social to two litres can have assets thanks to a single available across the UK. If you have bought a Services Team on Freephone Once reserved for proms and weddings that the manufacturers may find the end of the night, eyelash extensions now add a respond thanking you for your life. In this case the coupons may not be used for orders placed after withdrawal or termination but this will not is also available been already accepted. You can call the Customer product and have any constructive criticism or thoughts or ideas and then peeled off at useful then send them feedback and quite often companies will dose of glamour to everyday feedback and include vouchers for more of their products. Just click " Get Deal Nintendo has singlehandedly reinvented gaming Friday deals now. There is a whole range of different vouchers available for various items and they can be obtained from a whole range of places, online such as ones we list on this very sitein newspapers and magazines, food you have already bought or even supermarkets own brochures and magazines. Also if you already have with a sky atlas, confirmation all fitness levels and abilities, password to log in. Vision Direct Promo Code. Plus I heard that 80 Uk money off vouchers wasn't actually legal or possible (I'm not an attorney or a doctorscientist, so don't quote me on that - just passing along what I heard) The best so far for actual weight loss for me plus no nausea has been Pure GCE (I ordered. Click 'Get Deal' to head " to shop the Black.
Below are a few of the best freebies and most popular pages on the site. Save money on your mobile by choosing from the Free Sim Cards that are available. Having a baby then check out the baby free stuff to save money during parenthood. Grab yourself some free food which includes samples and money off vouchers. Matalan is a popular British retailer selling men's, women's and children's clothing, they also have a selection of products for the home. To save money, customers can use discount codes or buy gift vouchers on their website. Get up to 70% off in Exeter with local deals - Enjoy Exeter with coupons for restaurants, wellness, shopping, leisure & more with hocalinkz1.ga Two-Course A La Carte Meal for Two and Optional Bottle of Wine to Share at Frankie & Benny's, Nationwide (Up to 61% Off). Traditional or Festive Afternoon Tea with Optional Prosecco for Two at Patisserie Valerie (Up to 24% Off).
© 2018	| Theme: Nisarg	llll Amazon discount codes for December Verified and tested voucher codes Get the cheapest price and save money - hocalinkz1.ga Debenhams Discount Codes for December  Get your glad-rags for less from Debenhams with MyVoucherCodes  Check out our Debenhams promo codes to grab a deal that won't break the bank. Get money off your next order with a range of Sainsbury's voucher codes. Order your weekly shopping or something special and get amazing discounts with money off vouchers.


Diane Webb, a Democrat, was first elected Wayne County commissioner for District 9 in November 2008, representing Dearborn Heights, Garden City and Redford Township. In January 2013, she moved to District 8, which covers Dearborn Heights, Redford Township and part of Livonia.
She chairs the Committee on Government Operations and is a member of the Committee on Audit. She is also a member of the Special Committee on Senior Citizens and Veterans Affairs and the Special Task Force on the 100th Anniversary of Women's Suffrage.
A Garden City native, Webb earned a bachelor's degree in organizational communications and business management from Eastern Michigan University, and also holds a master's degree in public relations from Wayne State University.
Prior to running for the Wayne County Commission, Webb served on the Garden City City Council from 2003-07. As councilwoman, she was instrumental in settling five contracts with labor unions and revising the city's telecommunications network, which resulted in a savings of $750,000 over five years. In addition, Webb led an effort to refinance the city's debt, providing an annual savings of $200,000, and secured state and federal funding for the replacement of Maplewood Road.
Webb brings strong private sector experience to the Wayne County Commission. She worked for AT&T and its predecessor companies (Michigan Bell, Ameritech and SBC) for 18 years. She started her career in telecommunications in 1985 with Michigan Bell as a technical apprentice. As a member of the Communications Workers of America (CWA Local 4017), she worked as a service technician, a splicing technician and a digital operations technician before being promoted into management in 1996.
As a manager with Ameritech, Webb worked in the areas of customer service and project management for the company's largest accounts. In 1999, she was selected by upper management to participate in the Ameritech Executive Training Program. A year later, she was promoted to director of external affairs. In this position, she was responsible for government affairs and community relations for 44 municipalities in Wayne and Oakland counties.
She was actively involved in numerous boards and commissions, including the Family Services Organization, The Senior Alliance, the American Arab Chamber of Commerce and the University of Michigan's "Women on the Move" executive planning committee. She continues to serve in a number of organizations, including the Community Advisory Council for Blue Cross Blue Shield of Michigan.
Webb is the proud mother of Garrett. They live in Livonia.
Commissioner Webb meets holds in-district office hours three Mondays a month, excluding holidays, between January and May, and September, October and November.
*10-11 a.m., second Monday of the month, at the Redford Township Community Center, 12121 Hemingway.
*10-11 a.m., third Monday of the month, at the Berwyn Senior Center, 26155 Richardson, Dearborn Heights.
*10-11 a.m., fourth Monday of the month, at the Livonia Senior Center, 15218 Farmington Road.
Representing: Redford Township, Dearborn Heights & Livonia (part).
Wayne County Commissioner Diane Webb's annual volunteer event helped clear yards for seniors and veterans.
Commission Diane Webb represents the 8th District which covers Dearborn Heights, Redford Township and part of Livonia.
Wayne County Commissioner Diane Webb will co-host a town hall meeting to discuss the proposed sale of Warren Valley Golf Course and banquet center to developers.
Commissioner Diane Webb represents the 8th District, which covers Dearborn Heights, Redford Township and part of Livonia.
Senior citizens and disabled veterans in Redford Township and Dearborn Heights who aren't able to perform yard chores like raking leaves got an assist from an army of volunteers.
The goal is in the title: Make a Senior Smile Day.
The Wayne County Commission voted unanimously July 16 to accept a grant from the state that will help the county monitor the health of the Rouge River and its branches.
Wayne County Commissioner Diane Webb (D-Livonia) will host her fourth annual Veterans, Families & Caretakers Event from 5 to 8 p.m. Wednesday, June 24, in Redford Township.


Slim Ankle Pants is rated 5.0 out of 5 by 1.
Perfect for business, pleasure or both. The ultra-versatile Ankle Pants in jacquard bengaline ponte knit from our Pants by NYDJ collection are famous for a slimming fit that goes with every look. Elevated micro-patterning gives a savvy, stylish look to this classic ankle-skimming fit, which features NYDJ's signature Lift Tuck® Technology. This special technology is designed to smooth and trim your figure to look your best. Features welt pockets, zip fly and hook closure.
Rated 5 out of 5 by Jane G from Comfortable and stylish I wanted trousers rather than jeans. These pants are very comfortable and fashionable.


text:
Home / Profiles / Ara Norenzayan
email ara@psych.ubc.ca
launchGoogle Scholar
launchLab Website
PhD, University of Michigan, 1999
Dr. Ara Norenzayan is professor of psychology at the University of British Columbia, and a co-director of UBC's Centre for Human Evolution, Cognition, and Culture (HECC). He has published widely on the evolutionary origins of religion, and the psychology of religious diversity in today's globalized world. He is the author of Big Gods: How Religion Transformed Cooperation and Conflict.
Research interests include thinking across cultures; religious cognition, supernatural beliefs; psychological foundations of culture; issues of cultural variability and universality; cultural evolution.
Dr. Norenzayan's secondary research area is Cognitive Science.
Norenzayan, A. (2016). Theodiversity. Annual Review of Psychology, 67, 21.1-21.24.
Norenzayan, A. (2013). Big Gods: How Religion Transformed Cooperation and Conflict. Princeton University Press.
Henrich, J., Heine, S. J., & Norenzayan, A. (2010). The weirdest people in the world? Behavioral and Brain Sciences, 33, 61-83.
Norenzayan, A., & Shariff, A. F. (2008). The origin and evolution of religious prosociality. Science, 322, 58-62.
Norenzayan, A., & Heine, S. J. (2005). Psychological universals: What are they and how can we know? Psychological Bulletin, 135, 763-784.
For a full list of publications, visit Dr. Norenzayan's website.
Society for Personality and Social Psychology, Daniel M. Wegner Theoretical Innovation Prize (2017)
APA Division 36 Psychology of Religion Sexton Mentoring Award (2017)
Association for Psychological Science James McKeen Cattell Fund Sabbatical Fellowship (2014-2015)
American Psychological Association Fellow (2014)
Association for Psychological Science Fellow (2014)
Society for Personality and Social Psychology Fellow (2011)
Killam Faculty Research Prize (2008)
Society for the Experimental Social Psychology Fellow (2006)
Peter Wall Institute for Advanced Studies – Early Career Scholar (2002)


Developing web applications for long lifespan (20+ years) What is a type system? Again in shell type the command ./hello.exe Finally you will be able to see the output in the shell. How should I interpret "English is poor" review when I used a language check service before submission? I do lhave libopenssl and its dev package as well3.
Make space between rows constant How do I say "Thank you, Captain Obvious?" Is it appropriate to tell my coworker my mom passed away? But the problem is that I can not write any code actually, as gcc can not find all of foundation header files. Security Patch SUPEE-8788 - Possible Problems? asked 5 years ago viewed 4152 times active 5 years ago Get the weekly newsletter!
Why are so many metros underground? while the last error is removed by passing -D_NATIVE_OBJC_EXCEPTIONS option: ~$ gcc -x objective-c -I/usr/include/GNUstep -fconstant-string-class=NSConstantString -D_NATIVE_OBJC_EXCEPTIONS hello.m /tmp/ccRfUDNU.o: In function `_i_HelloWorld__hello': hello.m:(.text+0x1b): undefined reference to `NSLog' /tmp/ccRfUDNU.o: In function `main': nochecking for awk... Is accuracy a binary?
Need any clarification write me to : [email protected] share|improve this answer edited May 22 '10 at 0:08 Nathan Campos 10.3k37149260 answered May 21 '10 at 9:58 Anil Kumar Yadav 8412 Fraction *frac = [[Fraction alloc] init]; // Set the values. [frac setNumerator: 1]; [frac setDenominator: 3]; // Print the fraction. which will fail. We welcome your feedback!
What sense of "hack" is involved in five hacks for using coffee filters? share|improve this answer edited Sep 28 '11 at 19:24 Tim Cooper 86.9k21162181 answered Apr 27 '11 at 16:25 Richard 111 add a comment| up vote 1 down vote I know this The next level of tutorials do a hello world including the Foundation header and a simple GNUmakefile script, which then doesn't work under the Windows installation as you end up with Browse other questions tagged objective-c windows gnustep or ask your own question.
asked 7 years ago viewed 24257 times active 1 year ago Get the weekly newsletter! Join them; it only takes a minute: Sign up Cant find Foundation/NSObject.h in Linux while build Obj-c Program up vote 4 down vote favorite 2 I was just starting to study The GNUstep uses XML for many basicfunctions, such as reading/writing property lists. I'd like to set up an environment for learning objective C on my laptop.
Register Login Posting Guidelines | Contact Moderators Ars Technica > Forums > Operating Systems & Software > Programmer's Symposium Jump to: Select a forum ------------------ Hardware & Tweaking Audio/Visual Club yes GNU Make 3.81checking broken make... Stern Ars Scholae Palatinae Registered: Dec 5, 2005Posts: 1228 Posted: Tue Aug 12, 2008 1:15 pm It looks like you're not linking against the Objective-C runtime. Going to be away for 4 months, should we turn off the refrigerator or leave it on with water inside?
return( 0 ); } The error messages I get when trying to build:quote:/usr/lib/gcc/i486-linux-gnu/4.1.3/../../../../lib/crt1.o: In function `_start': (.text+0x18): undefined reference to `main' /tmp/ccVmsq2f.o: In function `__objc_gnu_init': 2.m:(.text+0x68): undefined reference to `__objc_exec_class' /tmp/ccVmsq2f.o:(.data+0x344): Posted Tuesday evening, May 15th, 2012 AppPot paper on arXiv Posted Tuesday evening, May 15th, 2012 GC3's director *Sergio Maffioletti* interviewed by *HPC in the Cloud* Posted Tuesday evening, May 15th, Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count). BTW, I have installed Cygwin before install MinGW and GNUstep Core, does it conflict with MinGW?
If yours is different, you should change the import of Foundation.h accordingly. Luckly, the gnustep-devel package provides a tools with similar functionalities to the pkg-config used for all the packages supporting it. Stop. Learning GNU Make is a very worthwhile endeavor.
IIRC, the initial support in GNUstep for the modern Objective-C runtime api's was started in that framework in Etoile, but that code has since been merged into GNUstep and libobjc2.Hope this Browse other questions tagged objective-c linux gnustep or ask your own question. To use GNUStep, I had to do the following: 1.


text:
Smithsonian Philatelic Achievement Award
Nomination process open through March 1st
Celebrating African American History Month
Alvin Ailey and Dancers stamp issued in 2004
Baseball: America's Home Run
Click to pause slideshow
The Smithsonian's National Postal Museum is dedicated to the preservation, study and presentation of postal history and philately. The museum uses exhibitions, educational public programs and research to make this rich history available to scholars, philatelists, collectors and visitors from around the world.
Subscribe to our free e-newsletter, Postmark, highlighting the treasures of the museum.
Stay connected with the museum through our social media sites. Follow the National Postal Museum on Instagram, Facebook and Twitter.
Today in Postal History
Langston Hughes is born in Joplin, Missouri. He was commemorated on a stamp in 2002.
The museum's galleries explore America's postal history from colonial times to the present. Visitors learn how mail has been transported and the wonder of stamps.
Search the collection to discover philatelic and postal history objects tracing the evolution of the postal services.
Learn more about objects in the museum's collections. From the tiniest stamps to a full-sized bus, the museum is home to a wide variety of fascinating objects.
Browse these pages to discover resources organized by topic, such as African Americans in the Postal Service and Philately, Airmail Service, or Civil War.
The Museum supports a wide variety of research projects. Our efforts are a resource and point of reference for research and wider investigation by historians throughout the United States and the world.
The Museum celebrates the beauty and lore of stamps. A stamp is much more than the physical evidence that postage has been paid. Stamps can be miniature works of art, treasured keepsakes, and rare collectibles.
The Education & Visitor Services Department provides teachers and students with activities. Our programs foster creative thinkers and provide opportunities for developing 21st century skills.
Host your next historic event at the National Postal Museum. Corporations, associations, organizations and members of the general public have the opportunity to host a reception or dinner at a premier venue adjacent to highly acclaimed exhibitions.
The National Postal Museum's virtual exhibitions galleries present America's postal history from Colonial times to the present, through the unique lens of postal history and stamps.
Docent-led tours are an excellent way to see the highlights of the National Postal Museum. The museum has regular free tours for visitors.
The Preservation Department focuses on the preservation, rehousing, conservation and exhibit preparation of the National Postal Museum's collection and loan objects.
Public programs at the National Postal Museum provoke thinking about postal history, philately, and related topics for diverse audiences.


204 units; Phoenix, AZ; Completed 2018. Amenities: Resort-style pool and spa, outdoor fire pit with gas barbecues, clubhouse with entertainment area, conference center, outdoor entertainment ramada with TVs and pool table, wood style plank flooring and granite counter-tops.
286 units; Glendale, AZ; Completed October 2017. Amenities: Resort-style pool and spa accented by an outdoor kitchen and gas grills, gas fire pits, clubhouse, a 2,000 sqft fitness center, dog park, dog spa, granite counter-tops and vinyl wood plank flooring.
244 units; Phoenix, AZ; Completed February 2016. Amenities: Clubhouse with large TV, kitchen, billiard table & views of Camelback Mountain, heated pool & spa, outdoor entertainment area including fire pits and gas barbecue grills, 24-hour fitness center, climate controlled interior corridors, electric vehicle charging station, quartz and granite counter-tops with waterfall edge, stainless steel appliances and faux wood plank flooring.
187 units; Scottsdale, AZ; Completed November 2015. Amenities: 5th Floor Sky View Lounge, heated pool & spa, outdoor bar and entertainment area including fire pits, gas barbecue grills & billiards, yoga studio, climate controlled interior corridors, 24-hour emergency maintenance, electric vehicle charging station, full-size in-home washer and dryer, quartz counter-tops, stainless steel appliances, faux wood plank flooring, dual pane windows, and mountain and city views in select apartment homes.
194 units; Chandler, AZ; Garden Style; Amenities: Pool with wet deck & spa, recreation area, barbecues, bags court, outdoor fireplace, entertainment pavilion, tot lot, exercise room/clubhouse, theater, Technologically Focused.
228 units; Gilbert, AZ: Completed in 2014; Garden Style. Amenities: Tot lot, pool, exercise room/clubhouse, theater.


Great Trip To Brookshire's and FREE Texas Ranger Tickets!
You are here: Home / FREEbies / Great Trip To Brookshire's and FREE Texas Ranger Tickets!
Jamie wrote in about a GREAT deal she did at Brookshire's!
I just wanted to let you know about a great deal going on at Brookshire's stores in Texas. They are giving away vouchers for 2 Texas Rangers tickets when you buy any 2 McCormick products. I went today and bought 2 country gravy mixes for $1.00 each and 2 McCormick marinade packets for $1.19 each but were BOGO FREE! Then I received 2 vouchers for 2 tickets each. Basically I'm getting 4 Ranger tickets for $3.19! My family is going to enjoy a cheap night at the ballpark thanks to McCormick and Brookshires! I NEVER shop there, but saw this in their ad and went.
The eggs were FREE with 3 Pillsbury items. The Homestyle Mac-n-Cheese was FREE with Kraft coupon (this is the first store I've found it in!), the Pull-ups were in their clearance section for $4!
Two things didn't make it into the picture- a second $4 package of Pull-ups and a package of cookies.
Wow! Jamie, thanks for sharing! What a great job and FREE Rangers tickets to boot!


10 pieces of american interiors that our homes lack home. Stainless steel farmhouse apron front workstation sinks. 39quot; risinger double bowl fireclay farmhouse sink white. Nantucket sinks 3025quot; x 18quot; fireclay farmhouse kitchen. 33quot; almeria cast iron farmhouse kitchen sink kitchen. New rohl shaws waterside fireclay sink wins best kitchen. 30quot; optimum stainless steel farmhouse sink kitchen.
Sink or swim campaign dl media. Ronbow sinks bathroom sinks vessel advance plumbing and. Shop franke usa round stainless steel undermount bar sink. Requirements for base utility sink cabinet loccie better. Elegant kitchen sink draining slowly gl kitchen design. Shop vigo vessel bathroom sets russet glass vessel. Bathroom : white bathroom sink bath sinks for sale corner. Sea shepherd rescues crew of sinking pirate fishing ship. Vintage bathroom sink legs chrome for lauraslastditch. Shop delta lorain stainless 2 handle widespread watersense. Kitchen sinks on shoppinder.
Oval white bathroom porcelain ceramic vessel sink bowl. Aquaterior bathroom porcelain ceramic vessel sink vanity. Kraus ceramic round vessel bathroom sink reviews wayfair. Bathroom sink vessel pop rectangle vessel bathroom sink. Vessel sink vanity combo roselawnlutheran. Shop kokols blue vessel sink pedestal bathroom vanity. Elite 1551 oval coffee brown glaze porcelain ceramic.


text:
Oakland couple renews vows, loses deposit
Dawn Paser and her mother Sheila enjoyed looking at pictures of Dawn's recommitment ceremony with her husband Richard.
"Just remembering the day, how beautiful it was, how happy I was," Dawn recalled.
Nearly one year after renewing her marriage vows, Dawn still chokes up thinking about it.
"I have a beautiful marriage," she said.
The couple rented out the city-operated Willie Keys Center in Oakland for the ceremony. The $300 deposit they paid was supposed to be returned to them once they left the place in good shape.
"Once that was done, we were supposed to wait six weeks to get the deposit returned," Richard said. "It turned into six months. So, we started wondering you know, where was our deposit."
They called several people in Oakland's Parks and Recreation Department including its fiscal manager.
"I called his number first. No reply. No reply. No reply. No reply," Richard said.
More time passed. Then, 11 months after the recommitment ceremony, Dawn had an idea.
"Flashes of 7 On Your Side commercials kept coming to me," she said.
The couple contacted us and we contacted the Recreation Department. One city employee who asked not to be identified blamed the delay on an accounting software glitch. The city promised to refund the money within ten days.
"I was amazed," Richard said. "We received it in two days."
"I said, 'Hallelujah. Thank you Jesus,'" Dawn said.
The couple said the money will pay for their donation to missionaries in Africa.
Since this story was filed, the city of Oakland released an official statement. Fiscal Manager Jason Mitchell described the incident "as a glitch that hardly ever happens, but it did." He apologized for the inconvenience.


DUOTONE Kiteboarding Team ᐅ Meet Lydé Heckroot!
A typical day would be checking if there are waves to surf or SUP, and if not I would doing a 90 min home workout or some Pilates, tend to some "admin", work on training strategies for the next competition by watching videos etc, go exploring (wherever I might be), check in with friends and family as I am travelling most months of the year, check what sport is on at the time and if it is football, tennis, surfing or rugby then I won't be leaving the couch haha.
My dad has been doing all extreme water sports his whole life, so my brother and I were the lucky ones to be born into it. From a very young age we started surfing and the moment my dad started kitesurfing, we followed suit. So my dad taught me when I was 11 years old and ever since then I have had the greatest support and coaching from both my dad and brother, which has gotten me to the level and position I am in now.
Ever since I started kitesurfing I was absolutely in love with the quality and development of this brand and the team behind it. It has been one of the only brands in which I have seen consistent growth and improvement each year. I rode for other brands before, but always had a "hidden crush" on this brand after having tried it a couple of times. I am so stoked to finally be a part of it and enjoy the progression first hand.
To be the female wave world champion and to be an influencer for Duotone for as long as possible.
Due of travelling and not always having access to a gym, I have developed my own full body home workout routine combining calisthenics and cardio, from which I have experienced the best results. I also love including cycling, Pilates and a decent stretching routine for recovery.
Sushi, chicken coconut curry, ice cream and chocolate.