text:
Justin Fields and Jake Fromm are both hoping to be Georgia's starting quarterback.
Dawghouse: Father of Justin Fields makes strong comments about championship game, Jake Fromm
Around the Dawghouse will bring you daily updates from what people and publications are saying about Georgia, from inside and outside of Athens.
Pablo Fields had some strong comments about the UGA quarterback situation
ESPN's David Hale wrote a lengthy article profiling Justin Fields and Trevor Lawerence and the possibility that they could end up forcing a Tua Tagovailoa-type situation at Georgia and Clemson respectively. Lawerence and Fields were the No. 2 and No. 1 overall prospects in the 2018 recruiting class and grew up about 30 minutes from each other.
Fields's father, Pablo, was quoted in the piece and there were two particular noteworthy comments made. The first had to deal with Saban's decision to swap out Jalen Hurts for Tagovailoa in the championship game.
"It wasn't an Einstein move," Pablo Fields told Hale. "They weren't going to win that game without the switch. They just weren't. But I hope that opens eyes because teams will do it in every [other] spot — tackle, guard, center. They'll figure a way. But playing the best quarterback, sometimes there's a big blowback — especially if it's an unseen commodity."
Everything Pablo Fields said in that comment is correct. Alabama would not have beaten Georgia had it stuck with Jalen Hurts. And he's also right that swapping out a quarterback in the middle of the game will cause some pushback. Still it's interesting that Fields made these comments, given that there's a chance his son could find himself in a similar situation.
The second comment was when Hale posed the question of whether or not Georgia could or would actually bench Fromm, given that all he accomplished a season ago.
"That's a roll of the dice," Pablo Fields said.
Again, what Fields said is correct. It would be a gamble to bench a proven quarterback, even for someone who is as talented as Fields.
Nothing that Pablo Fields said is wrong, and he was very diplomatic when discussing Fromm. Obviously Pablo Fields would love to see his son start for Georgia, but it seems he has a good understanding of why it will be a difficult decision for Kirby Smart to make.
It's Georgia preview day for Bill Connelly
No one does a better job of previewing the upcoming college football season than SB Nation's Bill Connelly and today he broke down Georgia.
Connelly's numbers, the S&P+, project Georgia to be the No. 6 team in the country. But it's worth pointing out that Georgia is a favorite in every game, and only in two of them is the projected margin of victory less than 10 points. Those two games are at LSU and home against Auburn.
He also touched a little bit on Georgia's missed opportunity in the national title game last year, but adds that Georgia is still extremely well positioned for the future.
"Despite favoring UGA heavily in most games, S&P+ still says the average Dawg record is closer to 10-2 than 12-0," Connelly wrote. "That's why it hurts so much to miss a title opportunity — even if you remain awesome, you don't know for sure when you'll get another one.
"Make no mistake, though: Georgia is going to be within range for the foreseeable future."
Deandre Baker will have high expectations
In addition to extensive film work on both the college and NFL level, Pro Football Focus puts in a ton of work with regards to the NFL draft. And to start the 2018 season, PFF has listed Georgia cornerback Deandre Baker as the country's top draft eligible cornerback.
Baker made the decision to bypass the 2018 NFL Draft and it looks like that decision could pay off with another strong season. Baker was excellent last season, particularly in the national championship game.
PFF wrote that Baker's strengths are that he "Shows the ability to stick with receivers in man coverage. Moves well and has good ball skills, leading to 10 pass breakups and three interceptions in 2017."
Offensive line expert names Lamont Galliard the SEC's top center
In the early days of Kirby Smart, the offensive line was pretty routinely criticized. But that doesn't look to be the case anymore as the offensive line is loaded with current and future stars.
ESPN's Cole Cubelic gave some pretty high praise to one current member of the Georgia offensive line, as the offensive line guru named Lamont Galliard as the SEC's top center.
MY top 5 SEC centers entering 2018:
1) Lamont Galliard, UGA
2) Elgton Jenkins, MsSt
3) Ross Piershbacher, ALA
4) Trystan Colon-Castillo, MIZZ
5) Drake Jackson, UK
— Cole Cubelic (@colecubelic) August 15, 2018
Galliard is a multi-year starter for the Bulldogs and should be a key piece on Georgia's excellent offensive line. DawgNation's Mike Griffith caught up with Cubelic to give some more in-depth thoughts on Galliard.
National media"expert" gives bold take on Georgia's season
Most expert Georgia to have a great season and coast to an SEC East title. Sure there might be some tough games against Auburn and a trip to LSU but it isn't unrealistic to expect a 12-0 or 11-1 record at the end of the regular season.
But to lose games to multiple SEC East foes? According to Collegefootballnews.com's Pete Fiutak, he thinks that is a real possibility. Even to someone like Florida, a team Georgia beat 42-7 just a season ago.
"I think Georgia is going to lose a few games this year. Maybe to South Carolina & I'm bullish on Florida" – @PeteFiutak pic.twitter.com/fQbIJjE9ji
— Paul Finebaum (@finebaum) August 14, 2018
Everyone is entitled to their own opinion but if this were to happen, it would certainly be a bummer of a season.
NEXT Georgia football podcast: The thing all UGA Playoff predictions seemingly have in common
Kirby Smart updates status of quarterback D'Wan Mathis: 'We're certainly going to be very cautious'
ESPN previews Georgia's 2019 season, labels 2 biggest areas for growth
SEC Network analyst predicts Georgia running back D'Andre Swift to win 2019 Heisman Trophy
2019 SEC Media Days representatives announced for Georgia
Sports Illustrated has high expectations for 3 members of Georgia's 2019 defense
SEC expert breaks down Georgia 'Great Wall' offensive line 1 day ago


This renown Tassie sparkling pours well with a white frothy mousse that has good hold. Once dissipated it reveals a pale straw coloured base with pale gold edges. Exceptionally fine bead showing very good persistence. The nose displays good intensity with baked bread and yeast lees top notes overlaid with some toasty characters followed by some subtle cashew and citrus end notes. The palate delivers mouthfilling flavours of baked bread, some toastiness, citrus, yeast lees and cashew with an almost creamy like mouthfeel. Clean dry finish with long aftertaste of yeasty baked bread, toast and cashew.


text:
Dr. Suzanne SteinbaumCardiology (Cardiovascular Disease), Internal Medicine Dr. Madeleine CastellanosPsychiatry, Neurology Dr. John LipmanGynecology, Vascular & Interventional Radiology See All
Mr. Donovan GreenAthletic Training, Fitness Dr. Pamela MillerInternal Medicine Dr. John LipmanGynecology, Vascular & Interventional Radiology See All
Find a Doctor/Pulmonary Disease/CO/Greenwood Village
Dr. Mai-Lan Huynh, MD
Pulmonary Disease, Hospitalist, Critical Care MedicinePulmonary Disease | Hospitalist | Critical Care Medicine
15 Insurance Plans
Languages supported at her practice: French, Vietnamese, English
Languages supported at this practice: French, Vietnamese, English
Mo - Fr: 8:30 AM - 5:00 PM
Critical Care & Pulmonary Consultants Greenwood5200 DTC Pkwy Ste 400Greenwood Village, CO 80111
Dr. Huynh's Background
Dr. Huynh, MD is a practicing Pulmonary Disease Specialist in Greenwood Village, CO. Dr. Huynh graduated from University of Wisconsin School of Medicine & Public Health in 1992 and has been in practice for 27 years. She completed a residency at Barnes Jewish Hospital. Dr. Huynh also specializes in Critical Care Medicine and Hospitalist. Dr. Huynh accepts multiple insurance plans including Rocky Mountain Health Plans, Medicare, and Anthem. Dr. Huynh is board certified in Pulmonary Disease. Dr. Huynh also practices at The Medical Center of Aurora in Aurora, CO. In addition to English, Dr. Huynh's practice supports these languages: French and Vietnamese.
Dr. Huynh, MD is a practicing Pulmonary Disease Specialist in Greenwood Village, CO. Dr. Huynh graduated from University of Wisconsin School of Medicine & Public Health in 1992 and has been in pract...Dr. Huynh, MD is a practicing Pulmonary Disease Specialist in Greenwood Village, CO. Dr. Huynh graduated from University of Wisconsin School of Medicine & Public Health in 1992 and has been in practice for 27 years. She completed a residency at Barnes Jewish Hospital. Dr. Huynh also specializes in Critical Care Medicine and Hospitalist. Dr. Huynh accepts multiple insurance plans including Rocky Mountain Health Plans, Medicare, and Anthem. Dr. Huynh is board certified in Pulmonary Disease. Dr. Huynh also practices at The Medical Center of Aurora in Aurora, CO. In addition to English, Dr. Huynh's practice supports these languages: French and Vietnamese. More...Less
Barnes Jewish Hospital
University of Wisconsin School of Medicine & Public Health
Learn More About Pulmonary Disease
5 Possible Reasons Your Asthma Is Not Under Control
Asthma that is not well controlled can have a number of consequences. Uncontrolled asthma can make it difficult to keep up with day-to-day responsibilities, including work and relationships, as well a......Read More
Q: What happens if blood clots are untreated?
Q: At what age does chronic obstructive pulmonary disease (COPD) start?
Q: What increases my risk for lung cancer?
Q: How should I treat an upper respiratory infection?
Q: How many people in the world have tuberculosis (TB)?
5200 DTC Pkwy Ste 400Greenwood Village, CO 80111
Dr. Surit Sharma
5200 DTC Pkwy Ste 400 Greenwood Village, CO 80111
Dr. Ahmad Rashid
499 E Hampden Ave Ste 300 Englewood, CO 80113
Dr. David Taryle
Dr. James Fenton
Dr. Michelle Beutz

redpajama_set_name: RedPajamaCommonCrawl


text:
/*	$NetBSD: sdiff.c,v 1.2 2009/04/13 07:19:55 lukem Exp $	*/
/*	$OpenBSD: sdiff.c,v 1.20 2006/09/19 05:52:23 otto Exp $ */

/*
 * Written by Raymond Lai <ray@cyth.net>.
 * Public domain.
 */

#include <sys/param.h>
#include <sys/queue.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>

#include <ctype.h>
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <getopt.h>
#include <limits.h>
#include <paths.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <util.h>

#include "common.h"
#include "extern.h"

#define WIDTH 130
/*
 * Each column must be at least one character wide, plus three
 * characters between the columns (space, [<|>], space).
 */
#define WIDTH_MIN 5

/* A single diff line. */
struct diffline {
	SIMPLEQ_ENTRY(diffline) diffentries;
	char	*left;
	char	 div;
	char	*right;
};

static void astrcat(char **, const char *);
static void enqueue(char *, char, char *);
static char *mktmpcpy(const char *);
static void freediff(struct diffline *);
static void int_usage(void);
static int parsecmd(FILE *, FILE *, FILE *);
static void printa(FILE *, size_t);
static void printc(FILE *, size_t, FILE *, size_t);
static void printcol(const char *, size_t *, const size_t);
static void printd(FILE *, size_t);
static void println(const char *, const char, const char *);
static void processq(void);
static void prompt(const char *, const char *);
__dead static void usage(void);
static char *xfgets(FILE *);

SIMPLEQ_HEAD(, diffline) diffhead = SIMPLEQ_HEAD_INITIALIZER(diffhead);
size_t	 line_width;	/* width of a line (two columns and divider) */
size_t	 width;		/* width of each column */
size_t	 file1ln, file2ln;	/* line number of file1 and file2 */
int	 Iflag = 0;	/* ignore sets matching regexp */
int	 lflag;		/* print only left column for identical lines */
int	 sflag;		/* skip identical lines */
FILE	*outfile;	/* file to save changes to */
const char *tmpdir;	/* TMPDIR or /tmp */

static struct option longopts[] = {
	{ "text",			no_argument,		NULL,	'a' },
	{ "ignore-blank-lines",		no_argument,		NULL,	'B' },
	{ "ignore-space-change",	no_argument,		NULL,	'b' },
	{ "minimal",			no_argument,		NULL,	'd' },
	{ "ignore-tab-expansion",	no_argument,		NULL,	'E' },
	{ "diff-program",		required_argument,	NULL,	'F' },
	{ "speed-large-files",		no_argument,		NULL,	'H' },
	{ "ignore-matching-lines",	required_argument,	NULL,	'I' },
	{ "left-column",		no_argument,		NULL,	'l' },
	{ "output",			required_argument,	NULL,	'o' },
	{ "strip-trailing-cr",		no_argument,		NULL,	'S' },
	{ "suppress-common-lines",	no_argument,		NULL,	's' },
	{ "expand-tabs",		no_argument,		NULL,	't' },
	{ "ignore-all-space",		no_argument,		NULL,	'W' },
	{ "width",			required_argument,	NULL,	'w' },
	{ NULL,				0,			NULL,	 0  }
};

/*
 * Create temporary file if source_file is not a regular file.
 * Returns temporary file name if one was malloced, NULL if unnecessary.
 */
static char *
mktmpcpy(const char *source_file)
{
	struct stat sb;
	ssize_t rcount;
	int ifd, ofd;
	u_char buf[BUFSIZ];
	char *target_file;

	/* Open input and output. */
	ifd = open(source_file, O_RDONLY, 0);
	/* File was opened successfully. */
	if (ifd != -1) {
		if (fstat(ifd, &sb) == -1)
			err(2, "error getting file status from %s", source_file);

		/* Regular file. */
		if (S_ISREG(sb.st_mode))
			return (NULL);
	} else {
		/* If ``-'' does not exist the user meant stdin. */
		if (errno == ENOENT && strcmp(source_file, "-") == 0)
			ifd = STDIN_FILENO;
		else
			err(2, "error opening %s", source_file);
	}

	/* Not a regular file, so copy input into temporary file. */
	if (asprintf(&target_file, "%s/sdiff.XXXXXXXXXX", tmpdir) == -1)
		err(2, "asprintf");
	if ((ofd = mkstemp(target_file)) == -1) {
		warn("error opening %s", target_file);
		goto FAIL;
	}
	while ((rcount = read(ifd, buf, sizeof(buf))) != -1 &&
	    rcount != 0) {
		ssize_t wcount;

		wcount = write(ofd, buf, (size_t)rcount);
		if (-1 == wcount || rcount != wcount) {
			warn("error writing to %s", target_file);
			goto FAIL;
		}
	}
	if (rcount == -1) {
		warn("error reading from %s", source_file);
		goto FAIL;
	}

	close(ifd);
	close(ofd);

	return (target_file);

FAIL:
	unlink(target_file);
	exit(2);
}

int
main(int argc, char **argv)
{
	FILE *diffpipe, *file1, *file2;
	size_t diffargc = 0, wflag = WIDTH;
	int ch, fd[2], status;
	pid_t pid;
	char **diffargv, *diffprog = "diff", *filename1, *filename2,
	    *tmp1, *tmp2, *s1, *s2;

	/*
	 * Process diff flags.
	 */
	/*
	 * Allocate memory for diff arguments and NULL.
	 * Each flag has at most one argument, so doubling argc gives an
	 * upper limit of how many diff args can be passed.  argv[0],
	 * file1, and file2 won't have arguments so doubling them will
	 * waste some memory; however we need an extra space for the
	 * NULL at the end, so it sort of works out.
	 */
	if (!(diffargv = malloc(sizeof(char **) * argc * 2)))
		err(2, "main");

	/* Add first argument, the program name. */
	diffargv[diffargc++] = diffprog;

	while ((ch = getopt_long(argc, argv, "aBbdEHI:ilo:stWw:",
	    longopts, NULL)) != -1) {
		const char *errstr;

		switch (ch) {
		case 'a':
			diffargv[diffargc++] = "-a";
			break;
		case 'B':
			diffargv[diffargc++] = "-B";
			break;
		case 'b':
			diffargv[diffargc++] = "-b";
			break;
		case 'd':
			diffargv[diffargc++] = "-d";
			break;
		case 'E':
			diffargv[diffargc++] = "-E";
			break;
		case 'F':
			diffargv[0] = diffprog = optarg;
			break;
		case 'H':
			diffargv[diffargc++] = "-H";
			break;
		case 'I':
			Iflag = 1;
			diffargv[diffargc++] = "-I";
			diffargv[diffargc++] = optarg;
			break;
		case 'i':
			diffargv[diffargc++] = "-i";
			break;
		case 'l':
			lflag = 1;
			break;
		case 'o':
			if ((outfile = fopen(optarg, "w")) == NULL)
				err(2, "could not open: %s", optarg);
			break;
		case 'S':
			diffargv[diffargc++] = "--strip-trailing-cr";
			break;
		case 's':
			sflag = 1;
			break;
		case 't':
			diffargv[diffargc++] = "-t";
			break;
		case 'W':
			diffargv[diffargc++] = "-w";
			break;
		case 'w':
			wflag = strtonum(optarg, WIDTH_MIN,
			    INT_MAX, &errstr);
			if (errstr)
				errx(2, "width is %s: %s", errstr, optarg);
			break;
		default:
			usage();
		}

	}
	argc -= optind;
	argv += optind;

	if (argc != 2)
		usage();

	if ((tmpdir = getenv("TMPDIR")) == NULL)
		tmpdir = _PATH_TMP;

	filename1 = argv[0];
	filename2 = argv[1];

	/*
	 * Create temporary files for diff and sdiff to share if file1
	 * or file2 are not regular files.  This allows sdiff and diff
	 * to read the same inputs if one or both inputs are stdin.
	 *
	 * If any temporary files were created, their names would be
	 * saved in tmp1 or tmp2.  tmp1 should never equal tmp2.
	 */
	tmp1 = tmp2 = NULL;
	/* file1 and file2 are the same, so copy to same temp file. */
	if (strcmp(filename1, filename2) == 0) {
		if ((tmp1 = mktmpcpy(filename1)))
			filename1 = filename2 = tmp1;
	/* Copy file1 and file2 into separate temp files. */
	} else {
		if ((tmp1 = mktmpcpy(filename1)))
			filename1 = tmp1;
		if ((tmp2 = mktmpcpy(filename2)))
			filename2 = tmp2;
	}

	diffargv[diffargc++] = filename1;
	diffargv[diffargc++] = filename2;
	/* Add NULL to end of array to indicate end of array. */
	diffargv[diffargc++] = NULL;

	/* Subtract column divider and divide by two. */
	width = (wflag - 3) / 2;
	/* Make sure line_width can fit in size_t. */
	if (width > (SIZE_T_MAX - 3) / 2)
		errx(2, "width is too large: %zu", width);
	line_width = width * 2 + 3;

	if (pipe(fd))
		err(2, "pipe");

	switch(pid = fork()) {
	case 0:
		/* child */
		/* We don't read from the pipe. */
		close(fd[0]);
		if (dup2(fd[1], STDOUT_FILENO) == -1)
			err(2, "child could not duplicate descriptor");
		/* Free unused descriptor. */
		close(fd[1]);

		execvp(diffprog, diffargv);
		err(2, "could not execute diff: %s", diffprog);
	case -1:
		err(2, "could not fork");
	}

	/* parent */
	/* We don't write to the pipe. */
	close(fd[1]);

	/* Open pipe to diff command. */
	if ((diffpipe = fdopen(fd[0], "r")) == NULL)
		err(2, "could not open diff pipe");
	if ((file1 = fopen(filename1, "r")) == NULL)
		err(2, "could not open %s", filename1);
	if ((file2 = fopen(filename2, "r")) == NULL)
		err(2, "could not open %s", filename2);

	/* Line numbers start at one. */
	file1ln = file2ln = 1;

	/* Read and parse diff output. */
	while (parsecmd(diffpipe, file1, file2) != EOF)
		;
	fclose(diffpipe);

	/* Wait for diff to exit. */
	if (waitpid(pid, &status, 0) == -1 || !WIFEXITED(status) ||
	    WEXITSTATUS(status) >= 2)
		err(2, "diff exited abnormally");

	/* Delete and free unneeded temporary files. */
	if (tmp1)
		if (unlink(tmp1))
			warn("error deleting %s", tmp1);
	if (tmp2)
		if (unlink(tmp2))
			warn("error deleting %s", tmp2);
	free(tmp1);
	free(tmp2);
	filename1 = filename2 = tmp1 = tmp2 = NULL;

	/* No more diffs, so print common lines. */
	if (lflag)
		while ((s1 = xfgets(file1)))
			enqueue(s1, ' ', NULL);
	else
		for (;;) {
			s1 = xfgets(file1);
			s2 = xfgets(file2);
			if (s1 || s2)
				enqueue(s1, ' ', s2);
			else
				break;
		}
	fclose(file1);
	fclose(file2);
	/* Process unmodified lines. */
	processq();

	/* Return diff exit status. */
	return (WEXITSTATUS(status));
}

/*
 * Prints an individual column (left or right), taking into account
 * that tabs are variable-width.  Takes a string, the current column
 * the cursor is on the screen, and the maximum value of the column.
 * The column value is updated as we go along.
 */
static void
printcol(const char *s, size_t *col, const size_t col_max)
{

	for (; *s && *col < col_max; ++s) {
		size_t new_col;

		switch (*s) {
		case '\t':
			/*
			 * If rounding to next multiple of eight causes
			 * an integer overflow, just return.
			 */
			if (*col > SIZE_T_MAX - 8)
				return;

			/* Round to next multiple of eight. */
			new_col = (*col / 8 + 1) * 8;

			/*
			 * If printing the tab goes past the column
			 * width, don't print it and just quit.
			 */
			if (new_col > col_max)
				return;
			*col = new_col;
			break;

		default:
			++(*col);
		}

		putchar(*s);
	}
}

/*
 * Prompts user to either choose between two strings or edit one, both,
 * or neither.
 */
static void
prompt(const char *s1, const char *s2)
{
	char *cmd;

	/* Print command prompt. */
	putchar('%');

	/* Get user input. */
	for (; (cmd = xfgets(stdin)); free(cmd)) {
		const char *p;

		/* Skip leading whitespace. */
		for (p = cmd; isspace((int)(*p)); ++p)
			;

		switch (*p) {
		case 'e':
			/* Skip `e'. */
			++p;

			if (eparse(p, s1, s2) == -1)
				goto USAGE;
			break;

		case 'l':
			/* Choose left column as-is. */
			if (s1 != NULL)
				fprintf(outfile, "%s\n", s1);

			/* End of command parsing. */
			break;

		case 'q':
			goto QUIT;

		case 'r':
			/* Choose right column as-is. */
			if (s2 != NULL)
				fprintf(outfile, "%s\n", s2);

			/* End of command parsing. */
			break;

		case 's':
			sflag = 1;
			goto PROMPT;

		case 'v':
			sflag = 0;
			/* FALLTHROUGH */

		default:
			/* Interactive usage help. */
USAGE:
			int_usage();
PROMPT:
			putchar('%');

			/* Prompt user again. */
			continue;
		}

		free(cmd);
		return;
	}

	/*
	 * If there was no error, we received an EOF from stdin, so we
	 * should quit.
	 */
QUIT:
	fclose(outfile);
	exit(0);
}

/*
 * Takes two strings, separated by a column divider.  NULL strings are
 * treated as empty columns.  If the divider is the ` ' character, the
 * second column is not printed (-l flag).  In this case, the second
 * string must be NULL.  When the second column is NULL, the divider
 * does not print the trailing space following the divider character.
 *
 * Takes into account that tabs can take multiple columns.
 */
static void
println(const char *s1, const char divc, const char *s2)
{
	size_t col;

	/* Print first column.  Skips if s1 == NULL. */
	col = 0;
	if (s1) {
		/* Skip angle bracket and space. */
		printcol(s1, &col, width);

	}

	/* Only print left column. */
	if (divc == ' ' && !s2) {
		putchar('\n');
		return;
	}

	/* Otherwise, we pad this column up to width. */
	for (; col < width; ++col)
		putchar(' ');

	/*
	 * Print column divider.  If there is no second column, we don't
	 * need to add the space for padding.
	 */
	if (!s2) {
		printf(" %c\n", divc);
		return;
	}
	printf(" %c ", divc);
	col += 3;

	/* Skip angle bracket and space. */
	printcol(s2, &col, line_width);

	putchar('\n');
}

/*
 * Reads a line from file and returns as a string.  If EOF is reached,
 * NULL is returned.  The returned string must be freed afterwards.
 */
static char *
xfgets(FILE *file)
{
	const char delim[3] = {'\0', '\0', '\0'};
	char *s;

	/* XXX - Is this necessary? */
	clearerr(file);

	if (!(s = fparseln(file, NULL, NULL, delim, 0)) &&
	    ferror(file))
		err(2, "error reading file");

	if (!s) {
		return (NULL);
	}

	return (s);
}

/*
 * Parse ed commands from diffpipe and print lines from file1 (lines
 * to change or delete) or file2 (lines to add or change).
 * Returns EOF or 0.
 */
static int
parsecmd(FILE *diffpipe, FILE *file1, FILE *file2)
{
	size_t file1start, file1end, file2start, file2end, n;
	/* ed command line and pointer to characters in line */
	char *line, *p, *q;
	const char *errstr;
	char c, cmd;

	/* Read ed command. */
	if (!(line = xfgets(diffpipe)))
		return (EOF);

	p = line;
	/* Go to character after line number. */
	while (isdigit((int)(*p)))
		++p;
	c = *p;
	*p++ = 0;
	file1start = strtonum(line, 0, INT_MAX, &errstr);
	if (errstr)
		errx(2, "file1 start is %s: %s", errstr, line);

	/* A range is specified for file1. */
	if (c == ',') {

		q = p;
		/* Go to character after file2end. */
		while (isdigit((int)(*p)))
			++p;
		c = *p;
		*p++ = 0;
		file1end = strtonum(q, 0, INT_MAX, &errstr);
		if (errstr)
			errx(2, "file1 end is %s: %s", errstr, line);
		if (file1start > file1end)
			errx(2, "invalid line range in file1: %s", line);

	} else
		file1end = file1start;

	cmd = c;
	/* Check that cmd is valid. */
	if (!(cmd == 'a' || cmd == 'c' || cmd == 'd'))
		errx(2, "ed command not recognized: %c: %s", cmd, line);

	q = p;
	/* Go to character after line number. */
	while (isdigit((int)(*p)))
		++p;
	c = *p;
	*p++ = 0;
	file2start = strtonum(q, 0, INT_MAX, &errstr);
	if (errstr)
		errx(2, "file2 start is %s: %s", errstr, line);

	/*
	 * There should either be a comma signifying a second line
	 * number or the line should just end here.
	 */
	if (c != ',' && c != '\0')
		errx(2, "invalid line range in file2: %c: %s", c, line);

	if (c == ',') {

		file2end = strtonum(p, 0, INT_MAX, &errstr);
		if (errstr)
			errx(2, "file2 end is %s: %s", errstr, line);
		if (file2start >= file2end)
			errx(2, "invalid line range in file2: %s", line);
	} else
		file2end = file2start;

	/* Appends happen _after_ stated line. */
	if (cmd == 'a') {
		if (file1start != file1end)
			errx(2, "append cannot have a file1 range: %s",
			    line);
		if (file1start == SIZE_T_MAX)
			errx(2, "file1 line range too high: %s", line);
		file1start = ++file1end;
	}
	/*
	 * I'm not sure what the deal is with the line numbers for
	 * deletes, though.
	 */
	else if (cmd == 'd') {
		if (file2start != file2end)
			errx(2, "delete cannot have a file2 range: %s",
			    line);
		if (file2start == SIZE_T_MAX)
			errx(2, "file2 line range too high: %s", line);
		file2start = ++file2end;
	}

	/*
	 * Continue reading file1 and file2 until we reach line numbers
	 * specified by diff.  Should only happen with -I flag.
	 */
	for (; file1ln < file1start && file2ln < file2start;
	    ++file1ln, ++file2ln) {
		char *s1, *s2;

		if (!(s1 = xfgets(file1)))
			errx(2, "file1 shorter than expected");
		if (!(s2 = xfgets(file2)))
			errx(2, "file2 shorter than expected");

		/* If the -l flag was specified, print only left column. */
		if (lflag) {
			free(s2);
			/*
			 * XXX - If -l and -I are both specified, all
			 * unchanged or ignored lines are shown with a
			 * `(' divider.  This matches GNU sdiff, but I
			 * believe it is a bug.  Just check out:
			 * gsdiff -l -I '^$' samefile samefile.
			 */
			if (Iflag)
				enqueue(s1, '(', NULL);
			else
				enqueue(s1, ' ', NULL);
		} else
			enqueue(s1, ' ', s2);
	}
	/* Ignore deleted lines. */
	for (; file1ln < file1start; ++file1ln) {
		char *s;

		if (!(s = xfgets(file1)))
			errx(2, "file1 shorter than expected");

		enqueue(s, '(', NULL);
	}
	/* Ignore added lines. */
	for (; file2ln < file2start; ++file2ln) {
		char *s;

		if (!(s = xfgets(file2)))
			errx(2, "file2 shorter than expected");

		/* If -l flag was given, don't print right column. */
		if (lflag)
			free(s);
		else
			enqueue(NULL, ')', s);
	}

	/* Process unmodified or skipped lines. */
	processq();

	switch (cmd) {
	case 'a':
		printa(file2, file2end);
		n = file2end - file2start + 1;
		break;

	case 'c':
		printc(file1, file1end, file2, file2end);
		n = file1end - file1start + 1 + 1 + file2end - file2start + 1;
		break;

	case 'd':
		printd(file1, file1end);
		n = file1end - file1start + 1;
		break;

	default:
		errx(2, "invalid diff command: %c: %s", cmd, line);
	}

	/* Skip to next ed line. */
	while (n--)
		if (!xfgets(diffpipe))
			errx(2, "diff ended early");

	return (0);
}

/*
 * Queues up a diff line.
 */
static void
enqueue(char *left, char divc, char *right)
{
	struct diffline *diffp;

	if (!(diffp = malloc(sizeof(struct diffline))))
		err(2, "enqueue");
	diffp->left = left;
	diffp->div = divc;
	diffp->right = right;
	SIMPLEQ_INSERT_TAIL(&diffhead, diffp, diffentries);
}

/*
 * Free a diffline structure and its elements.
 */
static void
freediff(struct diffline *diffp)
{
	free(diffp->left);
	free(diffp->right);
	free(diffp);
}

/*
 * Append second string into first.  Repeated appends to the same string
 * are cached, making this an O(n) function, where n = strlen(append).
 */
static void
astrcat(char **s, const char *append)
{
	/* Length of string in previous run. */
	static size_t offset = 0;
	size_t newsiz;
	/*
	 * String from previous run.  Compared to *s to see if we are
	 * dealing with the same string.  If so, we can use offset.
	 */
	static const char *oldstr = NULL;
	char *newstr;

	/*
	 * First string is NULL, so just copy append.
	 */
	if (!*s) {
		if (!(*s = strdup(append)))
			err(2, "astrcat");

		/* Keep track of string. */
		offset = strlen(*s);
		oldstr = *s;

		return;
	}

	/*
	 * *s is a string so concatenate.
	 */

	/* Did we process the same string in the last run? */
	/*
	 * If this is a different string from the one we just processed
	 * cache new string.
	 */
	if (oldstr != *s) {
		offset = strlen(*s);
		oldstr = *s;
	}

	/* Size = strlen(*s) + \n + strlen(append) + '\0'. */
	newsiz = offset + 1 + strlen(append) + 1;

	/* Resize *s to fit new string. */
	newstr = realloc(*s, newsiz);
	if (newstr == NULL)
		err(2, "astrcat");
	*s = newstr;

	/* *s + offset should be end of string. */
	/* Concatenate. */
	strlcpy(*s + offset, "\n", newsiz - offset);
	strlcat(*s + offset, append, newsiz - offset);

	/* New string length should be exactly newsiz - 1 characters. */
	/* Store generated string's values. */
	offset = newsiz - 1;
	oldstr = *s;
}

/*
 * Process diff set queue, printing, prompting, and saving each diff
 * line stored in queue.
 */
static void
processq(void)
{
	struct diffline *diffp;
	char divc, *left, *right;

	/* Don't process empty queue. */
	if (SIMPLEQ_EMPTY(&diffhead))
		return;

	/* Remember the divider. */
	divc = SIMPLEQ_FIRST(&diffhead)->div;

	left = NULL;
	right = NULL;
	/*
	 * Go through set of diffs, concatenating each line in left or
	 * right column into two long strings, `left' and `right'.
	 */
	SIMPLEQ_FOREACH(diffp, &diffhead, diffentries) {
		/*
		 * Print changed lines if -s was given,
		 * print all lines if -s was not given.
		 */
		if (!sflag || diffp->div == '|' || diffp->div == '<' ||
		    diffp->div == '>')
			println(diffp->left, diffp->div, diffp->right);

		/* Append new lines to diff set. */
		if (diffp->left)
			astrcat(&left, diffp->left);
		if (diffp->right)
			astrcat(&right, diffp->right);
	}

	/* Empty queue and free each diff line and its elements. */
	while (!SIMPLEQ_EMPTY(&diffhead)) {
		diffp = SIMPLEQ_FIRST(&diffhead);
		SIMPLEQ_REMOVE_HEAD(&diffhead, diffentries);
		freediff(diffp);
	}

	/* Write to outfile, prompting user if lines are different. */
	if (outfile)
		switch (divc) {
		case ' ': case '(': case ')':
			fprintf(outfile, "%s\n", left);
			break;
		case '|': case '<': case '>':
			prompt(left, right);
			break;
		default:
			errx(2, "invalid divider: %c", divc);
		}

	/* Free left and right. */
	free(left);
	free(right);
}

/*
 * Print lines following an (a)ppend command.
 */
static void
printa(FILE *file, size_t line2)
{
	char *line;

	for (; file2ln <= line2; ++file2ln) {
		if (!(line = xfgets(file)))
			errx(2, "append ended early");
		enqueue(NULL, '>', line);
	}

	processq();
}

/*
 * Print lines following a (c)hange command, from file1ln to file1end
 * and from file2ln to file2end.
 */
static void
printc(FILE *file1, size_t file1end, FILE *file2, size_t file2end)
{
	struct fileline {
		SIMPLEQ_ENTRY(fileline)	 fileentries;
		char			*line;
	};
	SIMPLEQ_HEAD(, fileline) delqhead = SIMPLEQ_HEAD_INITIALIZER(delqhead);

	/* Read lines to be deleted. */
	for (; file1ln <= file1end; ++file1ln) {
		struct fileline *linep;
		char *line1;

		/* Read lines from both. */
		if (!(line1 = xfgets(file1)))
			errx(2, "error reading file1 in delete in change");

		/* Add to delete queue. */
		if (!(linep = malloc(sizeof(struct fileline))))
			err(2, "printc");
		linep->line = line1;
		SIMPLEQ_INSERT_TAIL(&delqhead, linep, fileentries);
	}

	/* Process changed lines.. */
	for (; !SIMPLEQ_EMPTY(&delqhead) && file2ln <= file2end;
	    ++file2ln) {
		struct fileline *del;
		char *add;

		/* Get add line. */
		if (!(add = xfgets(file2)))
			errx(2, "error reading add in change");

		del = SIMPLEQ_FIRST(&delqhead);
		enqueue(del->line, '|', add);
		SIMPLEQ_REMOVE_HEAD(&delqhead, fileentries);
		/*
		 * Free fileline structure but not its elements since
		 * they are queued up.
		 */
		free(del);
	}
	processq();

	/* Process remaining lines to add. */
	for (; file2ln <= file2end; ++file2ln) {
		char *add;

		/* Get add line. */
		if (!(add = xfgets(file2)))
			errx(2, "error reading add in change");

		enqueue(NULL, '>', add);
	}
	processq();

	/* Process remaining lines to delete. */
	while (!SIMPLEQ_EMPTY(&delqhead)) {
		struct fileline *filep;

		filep = SIMPLEQ_FIRST(&delqhead);
		enqueue(filep->line, '<', NULL);
		SIMPLEQ_REMOVE_HEAD(&delqhead, fileentries);
		free(filep);
	}
	processq();
}

/*
 * Print deleted lines from file, from file1ln to file1end.
 */
static void
printd(FILE *file1, size_t file1end)
{
	char *line1;

	/* Print out lines file1ln to line2. */
	for (; file1ln <= file1end; ++file1ln) {
		/* XXX - Why can't this handle stdin? */
		if (!(line1 = xfgets(file1)))
			errx(2, "file1 ended early in delete");
		enqueue(line1, '<', NULL);
	}
	processq();
}

/*
 * Interactive mode usage.
 */
static void
int_usage(void)
{
	puts("e:\tedit blank diff\n"
	    "eb:\tedit both diffs concatenated\n"
	    "el:\tedit left diff\n"
	    "er:\tedit right diff\n"
	    "l:\tchoose left diff\n"
	    "r:\tchoose right diff\n"
	    "s:\tsilent mode--don't print identical lines\n"
	    "v:\tverbose mode--print identical lines\n"
	    "q:\tquit");
}

static void
usage(void)
{
	extern char *__progname;

	fprintf(stderr,
	    "usage: %s [-abdilstW] [-I regexp] [-o outfile] [-w width] file1 file2\n",
	    __progname);
	exit(2);
}

redpajama_set_name: RedPajamaGithub


text:
Roadtrippers Roadtrippers Voices
Voices from the Road Jan 10th 2022
Endless miles of gravel: A solo motorcycle ride from coast to coast on the Trans America Trail
Roadtripper Heather Sinclair, 41 Trip Length
56 days, 7,082 miles
2021 AJP PR7
New York to Oregon via the Trans America Trail
I was on the journey of a lifetime: riding a motorcycle around the world. The world had other plans, however. One day I was blasting off-piste across the Sahara—and the next day I was trapped in a Moroccan apartment outside of Agadir due to a strict lockdown.
A year later, I was back at home in the United Kingdom, in a second lockdown, with itchy feet and itchy tires. I was eager to be rolling again but the world remained stubbornly closed. My first choice, driving across Africa to Cape Town, was no longer possible due to escalating regional conflicts. My second choice, across Russia to the Road of Bones in Magadan, was also off the table due to Russia's closed land borders. It seemed everywhere I looked, even as air borders were starting to open, land borders did not follow suit—and overland travel effectively remained on hold.
There was one exception: the U.S. While I'm now based in the U.K., I spent most of my life in the states. My preferred form of travel is riding remote parts of far-off lands, immersed in strange cultures, where every day offers something new and unexpected. Riding across the U.S. and returning to the land of my birth just didn't seem like it could compare in terms of adventure. So I decided that if I were to do it, I would add an extra challenge: I would be riding coast to coast, almost entirely off-road via the Trans America Trail (TAT).
I picked up the bike in New York City, but I was still hundreds of miles from where the TAT starts in West Virginia. I followed the Mid-Atlantic Backcountry Discovery Route (BDR) from Pennsylvania to where it intersects with the TAT. It was slow-going at first, as I got re-accustomed to the rigors of riding all day and camping all night. I discovered my mattress had a slow leak and my tent, which had survived a tour through Scotland, was not waterproof enough to withstand East Coast summer thunderstorms. The rain came down in sheets and at times I thought my tent was about to float away. Soggy, I checked into a hostel a few days later armed with tent sealant and mattress repair patches.
It was only after riding this section for days on end that I started to notice the subtle landscape changes, from dense forests in the northeast, to cool twisty roads in the Appalachians, and the hot and humid pine forests of Tennessee.
I became a connoisseur of gravel, because I had to: Nearly every inch of the unpaved road was covered in the stuff. I learned to recognize by size, shape, and the crunching sound underneath the wheels just how much my bike would shimmy through the road.
I have always been a slow rider off-road, preferring cautious puttering over twisting the throttle, but here in the U.S., I found myself packing on more speed; the sheer scale of the endeavor meant that I had to pick up the pace.
A warm and muddy welcome in Arkansas
The forests of the East transformed into farmlands surrounding the Mississippi river. This part of the U.S. isn't known for adventure riding, so when locals see a heavily loaded dual sport bike riding down remote farm roads, it means only one thing—it's someone on "the trail."
Along the trail, people put up the TAT sign to welcome weary travelers sweltering through the Arkansas summer. At Kale & Kale, retiree Percy Kale sat me down in his general store-turned-museum and gave me a can of cold Pepsi. "It took you long enough to get here," he said with a twinkle in his eye. I flipped through his logbook and saw the names of people I had met along the way. They had all been on a much shorter timeframe than my open-ended journey, so they had rushed ahead of me. I dutifully entered my name, and flipped through the photos of people who had done the same journey; most of them were on motorcycles, some on 4x4s, and even a few on bicycles.
Percy's son Glenn arrived and warned me: "The road ahead is pretty muddy right now because of the rains. I'd definitely skip the next section."
I decided to take a look at the infamous mud. I'd heard stories from travelers about how when the rains set in, on the whole stretch between Mississippi and Oklahoma, soaking the farmlands, it creates an unrideable slurry that burns clutches, gums up tires, and strands riders.
I turned off the tarmac onto a gravel road that was thick and rutted with mud. I paddled a short distance up to where two farmers leaned against their pickup trucks, chatting. "It's gravel up ahead and this is the worst bit, you'll be fine," they assured me. I continued, but this was unlike any road I'd ridden before. Somehow it was soft and slippery and sticky all at once—and progressively got worse. Every time I tried to lift up my feet, the bike threatened to slide out from under me.
Eventually, one of the farmers drove over to check on me. Halfway up the road, his truck started slipping and he slid right by where I was stopped at a 45-degree angle. When his truck finally came to a halt he leaned out his window. "We were watching you," he said. "Don't worry, that's gravel right ahead." The total length had been less than a mile, but it had been a struggle. When the gravel once again ended, I followed Glenn's advice, backtracked to the tarmac, and skipped the next section.
Desert solitude in Western Utah
The highlight of the TAT comes more than 3,000 miles in, when the prairie collides with the Rocky Mountains. I rode over dizzying passes where the air is thin and the riding becomes technical. I then descended into Moab, where wind and water form the red rock into fanciful shapes and where one could easily spend a whole year and not exhaust the riding opportunities. Suddenly I went from seeing only the occasional TAT rider to being one of an endless stream of motorcycles, side-by-sides, quads, and Jeeps. The crowds of weekend warriors and part-time adventurers vanished as quickly as they came, as I exited the Canyonlands and continued west through a remote and rarely-visited part of Utah.
The solitude was immense. I stopped at a spigot in a field where wild horses drank. They stamped and shook their heads at me as I filled up my water bottles, angry that they had been interrupted. Gravel crunched under my tires as I continued down through Death Canyon before it opened up into a wide flat salt plain. The sun was low in the sky as I set up camp on this seldom-traveled road next to sand dunes. It had been hours since I had seen another person, and there was no sign of any human life as far as I could see.
The silence of the desert that night lay thick as a blanket over my tent, under a sky studded with stars. I awoke early to a perfect pink sky at dawn and hunched over my little stove to cook breakfast. My morning bath was in a nearby warm spring, the water gushing over a small waterfall into a crystal clear pool.
The roads were straight, wide, and empty. I twisted my throttle and blasted across the desert, my speedometer reading 50, 55, 60, and higher as I left a plume of dust in my wake. I still had thousands of miles left to go.
Winter approaches
I had started this journey later in the year than I should have, given my pace. It was already late September by the time I made it to Oregon, the last state on my journey. The peaks of the Cascades were already dusted with snow, and on a particularly cold day, I piled on the layers and discovered that my heated grips had broken somewhere along the way. By the time I got to the next town, I stopped at a local campground even though it was only 1 p.m. and crawled into my tent in an attempt to warm up.
A few days more and the end came in a rush. A small sign with an arrow said "coast." Someone had stuck a TAT sticker on it. After one final "pavement ends" sign, the smell of the Pacific Ocean arrived before the sight of it. I turned onto the 101, the long coast highway that eventually leads to my California hometown, and rode a short distance to Port Orford. I turned at one of the fish restaurants and went down the small path to Battle Beach. The bike squirmed onto the soft dry sand before making it to the firmer dark wet sand; waves lapped over my tires, and with a baptism in saltwater, my journey had come to an end.
What had been an entirely solo journey would soon become a group celebration. Kevin, who I had met earlier in Bend, Oregon, pulled onto the beach only a few hours after I did. Then a couple, Amy and another Kevin, rode up on a Zero electric motorcycle. "I can't go that far onto the sand," he said, laughing. "This bike is too heavy!"
While we had never ridden together, we had shared the joy and hardship of the route. That night at the campsite, we shared stories over a bottle of wine I had bought to celebrate. Amy said, "It sounds kind of strange, but I think of the TAT like a pilgrimage."
In the subsequent days I reflected upon that thought. Yes, the TAT is not the best or the most stunning ride across the U.S. It's days of boring and lonely gravel roads, with little more to see than small-town dollar stores and endless forests. But the TAT is special in a different way, in the uniqueness of being able to ride across a continent almost entirely off-road, on a route that's remained almost totally unchanged for decades. This shared experience bonded me with everyone that had done the TAT before and all who would do it after I had left.
While riding across the U.S. had not been my first choice for adventure, it left me with an experience that I couldn't have had anywhere else.
Meet the Roadtripper
Heather Sinclair
More Voices from the Road
Sanna Boman Dec 27th 2021
11 days, 2,000 miles, and 6 perfect strangers: The Alaskan motorcycle adventure of a lifetime
Tamara Raye Oct 25th 2021
The Garden Isle Grand Prix: Making friends and memories on a Hawaiian motorcycle adventure
Cait Maher Sep 27th 2021
A magical dual-sport adventure through the wooded terrain of Pennsylvania


The DS-P1 series of satellites was used to calibrate space surveillance and early warning radars.
These satellites were used to calibrate the Dnestr (NATO-codename: 'Hen House') space surveillance and early warning radars. These satellites were built on a dodecahedral structure, which carried solar cells. The satelite was covered by a spherical mesh reflector transparent for light-region waves and non-transparent for decimetric and metric radio waves.
4 of these satellites were launched between 1962 and 1964 on Kosmos boosters. One failed to reach orbit.
They were replaced by the similar operational DS-P1-Yu series.


We are a school with a spirit of Barcelona. Metrocultura is proud to be already for more than 30 years at the same location in the heart of Barcelona helping foreigners to learn Spanish and understand our culture. We create an atmosphere that make you feel just like in Spanish family and you forget about all barriers and start speaking Spanish. Don't hesitate and become part of your Metrocultura Family!
I liked small groups that make you fully participate in class. Thank you all for such a wonderful time in Barcelona and for helping me during my stay.
Teachers create a great environment for learning. The school team always cares about students, both for education and accommodation.
I had an amazing time in Metrocultura. I met great people from all over the world and improved Spanish. The atmosphere was always great.


text:
===============
horizon-formula
===============

A Saltstack formula for Openstack Horizon

.. note::

    install and configure Openstack Horizon

Available states
================

.. contents::
    :local:

``horizon``
------------

Installs the required Openstack Horizon packages,
and starts the associated Openstack Horizon services.


Today we welcomed 4 new runners to our Peace Run team; Midori and Victor from Tokyo and Yu and Ushra from Kamakura.
The Peace Run had a booth outside the stadium of the Kyoto Sanga Football Club, in Kyoto. Kyoto Sanga plays in the J2 League in Japanese National League.
After addin the finishing touches to our Peace Run booth, we eagerly awaited the arriving football fans.
We also had fun games for the many children attending. They had a chance to identify Australian animals, learn about Indian culture and also how to identify the States in America.
The organizers of the football game invited us to meet the team mascots and to enter the stadium before the game started.
half a lap of the stadium with the torch.
We would like to thank the Kyoto Sanga Football Club for giving us the opportunity to be a part of their match day activities today.
After a long day at the football stadium, our hungry international team headed over to a great sushi restaurant to experience some local cuisine.
Torch carried by Abhejali Bernardová (CZ), Akanda Norov (MN), Harashita Sunaoshi (JP), Homagni Baptista (AU), Kanyaka Arini (ID), Midori Shimizu (JP), Otis Davis (US), Pushpendra Uppal (AU), Salil Wilson (AU), Stacey Marsh (NZ), Usra Yamada (JP), Victor Lusis (NZ), Yu Yamada (JP).


Sweet potatoes are, by far, the trendiest potato.
Have you ever heard of anyone obsessing over white potatoes? Besides, of course, french fries…which are in their own category, if you ask me.
Exactly. I haven't met one person obsessed with the basic white potato. I also haven't met anyone who liked dipping their plain ol' white potato fries in maple syrup. Weird. But syrup on a sweet potato? Totally acceptable.
Also acceptable? Loading up your baked sweet potato with all kind of toppings.
Even more acceptable? Taking a Mexican food twist on things, and making Southwestern Stuffed Sweet Potatoes.
And whats even better? Pairing it with some dranks. Errr, drinks.
Because not only do I love sweet potatoes, but I love Mexican food, and Mexican really tastes best when its paired with some alcohol.
If you recall, in January, I did collaboration with my good friend Dani from Care to Pair. I provided the Kombucha, she provided the expertise: she and her fiancé created a kombucha cocktail that we both still drink to this day. Alcohol + probiotics= love.
While oven is preheating, wrap your potatoes in foil.
While potatoes are baking, combine oil in a large saucepan with taco seasoning and 3 tbsp. of fresh cilantro on medium heat. Add ground beef and brown until thoroughly cooked, about 15 minutes.
Once potatoes are done baking remove from oven. Remove foil and slice lengthwise down middle, being careful not to burn yourself.
In a small bowl, melt your almond cheese or regular cheese.
In the cut you made in each potato, place a spoonful of your seasoned ground beef. Top with fresh guacamole, melted cheese, salsa, and fresh cilantro. Serve and enjoy immediately.


text:
17-18-19-20 juin 2021
Dessel, Belgique
Played at Graspop Metal Meeting
Celebrating 25 years of NOLA
This all-star band from New Orleans started out as a side project but quickly made a name for themselves with their excellent debut 'Nola' (1995). They also provided one of the highlights to our 2009 and 2013 editions. New releases have always been few and far between due to the members' busy schedules with their respective main bands but with such a stellar line-up it's well worth the wait. With three founding members still in place - charismatic former Pantera frontman Phil Anselmo, Pepper Kennan (C.O.C.) and Jimmy Bower (Eyehategod) – Down are seasoned professionals whose natural habitat is the live stage. The line-up is completed by Goatwhore's Pat Bruders and Bobby Landgraf (Honky). To date, their 2014 EP 'Down IV – Part II' marks the last chapter in Down's catalogue of dirty, low-down riffs and trademark Anselmo screams and growls so with no new material on the way your best option is to come and see these titans deliver the goods live. (#GMM21)
You may also like these bands
© Graspop Metal Meeting 2021
Webdesign Inventis
Hosting by Level27


text:
Q: Can ASP.NET Core 3.1 Web API be attacked by directory traversal? Our security team asked me to "add logic to detect directory traversal attack" for our ASP.NET Core 3.1 Web API. So I read the content from:

*

*https://en.wikipedia.org/wiki/Directory_traversal_attack

*https://owasp.org/www-community/attacks/Path_Traversal
But it seems there's no way to give it a directory traversal attack at all - the invalid URLs are not routed to the controller/actions. So, my questions are -

*

*Do we need to worry about directory traversal attack?

*If yes, what is the best way to implement?

Thank you in advance!!

A: The Path Traversal may be a threat, but not necessarily from the .Net Core WebAPI, of course, it will depend on many factors:

*

*How did you configure the web server. Do you allow browsing the application or any path in the server?

*Do you allow user data (like file paths to any storage) to be specified in the incoming data?

*Do you configure app.UseStaticFiles() allowing the WebAPI user specify the route, or not making sure running process only has access to that directory not apply any ../ path?

*If you load files to your API... Do you generate a file name for the storage or use the same file name provided?

Those and many other questions may arise depending on how you configure the application/server or how you control the access or sanitize your data.
Just some food for thoughts. :)

redpajama_set_name: RedPajamaStackExchange


Smart AudioBook Player Pro APK is the best app to download for your android, Many people are searching for this Smart AudioBook Player Pro APK App to download and sometimes they cannot able to find their latest Smart AudioBook Player Pro APK Version.
Well, I am here to give you latest Smart AudioBook Player APK Download Link so that you can use all the features of this App. It is very easy to use Smart AudioBook Player Pro APK because it has many easy options which you can configure easily.
Click on the above download button and then you will find your own Smart AudioBook Player Pro APK to download. Most of the times, Chrome will tell you that it is harmful apk, but ignore it, download this Smart AudioBook Player APK and Install it as well.
Installing Smart AudioBook Player Pro App is very easy and anyone can able to install this Smart AudioBook Player Pro app in their own smartphone. This App is getting popular by its usage, many people started using this Smart AudioBook Player Pro App so that it can help them.
Then Open your Smart AudioBook Player APK file.
After that You can Go to your menu there you will see your Smart AudioBook Player APK Installed.
Now you can share it with your friends so that it will help them to download their Smart AudioBook Player Pro App APK file.


Look out, boy - I am currently infatuated with another.
My mother used to keep walnuts in our pantry. I'll never forget them - I don't know what on earth she used them for, but they were there for as long as I can remember - chopped up and stored in a recycled glass jar that was in the shape of a teddy bear. One day - most likely out of rainy afternoon boredom - I decided to grab a handful out of the jar to eat as a snack. Now, perhaps they had gone rancid, perhaps they were simply stale, or perhaps my palette had not yet fully developed... but all that I can recollect is a vivid memory of my immediate heaving and spitting straight into the garbage pail.
For years afterward, this popular nut remained banished from all that I cooked, baked, and consumed.
Recently, I visited a small Italian resto on St. Denis. I was deep into conversation when the waiter showed up to take our orders. As per usual, I hadn't yet taken a long enough glance at the menu to know what I wanted - feeling pressured as everyone sounded off their choices, I ran a split-second menu scan, spotted the words "cream," "mushrooms," and "pasta."
And that's when it happened. That was the turning point.
Later that week, I attempted to replicate the mushroom walnut cream sauce (which I did, fabulously, by the way), and served it over a spinach and mushroom tart. Sorry to break your hearts, but you won't be getting the recipe for that today. You can blame the boy, and I guess you can also blame it partially on myself - we polished that sucker off before I could even fathom taking a second photograph. (Or writing down what the recipe.) Oops.
Instead - I bring you something tantalizing - an autumn twist on a year-round staple. You may have been searching for a superior banana bread recipe for years, and just haven't found one. Or, perhaps you already have your own recipe for banana bread, and you're wondering why you should switch away from your tried-and-true. Here are a few reasons why this bread is awesome: three huge bananas, whipped butter, cinnamon and vanilla. And now, here are a few reasons for the health conscious people: fibre(fruits, nuts), protein(nuts), vitamins(fruits), and a ton of added fat-free moisture - in the form of diced apples.
Yeah. That's right. I put diced apples in my banana bread.
Do it. I dare you. You won't regret it.
• Preheat oven to 350F. Grease and flour 10'' angel food cake (or bundt cake ) pan.
• Mix sugar and butter together in a medium mixing bowl until completely blended. Add banana, vanilla, 1 tbsp lemon juice and eggs, mixing well.
• Add flour, baking soda and 1 tbsp cinnamon, mixing just until moist.
• Stir in nuts and apple mixture.
• Spread batter evenly into pan. Bake 50 minutes to 1h.
• Divide mixture among 12 greased muffin cups. Bake for 30 to 35 minutes.
Oh my gosh, how I remember now that little green topped teddy Peanut Butter Jar...no, they were not stale, you just did not like nuts at the time...the same with shroooms, remember that.
I am honored that you mentionned me in your blog, and so happy that you have become such an accomplished cook, amongst many other things.
Off to make your recipe!!


text:
Home Community Nobel students learn the power of the Eco 5Rs at home
Nobel International School Algarve
Nobel students learn the power of the Eco 5Rs at home
During the Easter holidays, Nobel International School Algarve students in Middle School, Years 7 to 9, were set the challenge of carrying out the 5Rs: Refuse, Reduce, Reuse, Repurpose and Recycle.
Through home-based research, part of the PHSE curriculum that lays the foundation for study of the newly-introduced IGCSE Global Perspectives course, the students were set tasks including finding out how fast things biodegrade, such as vegetables, paper, cotton, orange peel and styrofoam cups. The second part of their task was to come up with creative ways in which to repurpose items that would normally end up in the rubbish bin.
Anushka Naidu, Year 7, took the challenge very seriously, managing to repurpose 100 items during the school holiday. Miriam Naidu, mother of Anushka, Josh and Anaya, and Chair of Friends of Nobel International School Algarve, said: "It was incredible to see how inventive Anushka became with this challenge. She is naturally very competitive and set herself the challenge of repurposing 100 items. She took it so seriously and was busy for the entire holiday with her sewing machine and everything that she found. We were amazed at some of the ideas she had! She was working on it constantly and was so self-disciplined and determined. It gave her a real sense of purpose."
Whilst Anushka, originally from Warwickshire in England, created a phone stand as well as pen pots, nail polish holders, clothes, games and home decorations, one of her classmates, Nikolai Musk, Year 7, used plastic bottles and felt to make a face mask – he even made a video of how to make this which is shared on the school's Facebook page.
The students' teacher, Mr Dawid Botha, said: "It was astounding to see just how these Year 7 students interpreted this task and invested so much time, thought and energy into it. In our online school discussions about this topic, the students were able to share their ideas and inspire each other to reconsider what purchases they make and how they dispose of household items. We discussed how we can send signals to big brands by choosing to buy items made from material that can be recycled. Well done to these students!"
Pet corner: APAA and ARA share common ground
CASA social club holds first event of 2023
Art that the sea washes away
Pet corner: Dotting the i's and crossing the t's
What questions do Vilamoura International School students have in mind?


this is obviously a biased view but I recommend buying one. They are so rare that you are unlikely to lose money on it. Having a BMW lump all the spares are easily available and not really expensive . They are not complicated bikes but are awkward to work on .Nothing is easy to get at. The other thing is you may have to settle for the stock 55bhp as tuning is not easy and not cheap.
Having said that , with the bike being so light and agile 55bhp feels like lot more. Have a test ride but make it a long one. They take a bit of getting used to. I bought one years ago -sold it -regretted it and now have another one .
Hi, I bought the BB1 in Jems Speed Shop. I love big singles and Italian Bikes so the perfect bike for the B Roads. Currently stripping carbs as the bike won't tick over but first ride went well and it pulls nicely and handles great.
Plan is to strip her down over the winter and then rebuild to a high standard and maybe repaint. Having had many big singles in the past (SRX, KLR, NordWest) it doesn't vibrate any more than I was expecting. I have a feeling this is going to be a long term relationship!!
Also in the Garage - Ducati 999 Mono Nero, MV Brutale 750s, ZXR750H1, KTM990SMT and home made specials cos you gotta have a hobby!
Congratulations on your purchase....I hope you hammered them down on the price somewhat....poor fellow of a previous owner had it for sale on Facebook for a lot smaller price before selling it to the dealer....On another note...similar congratulations on being the 1,500th Person to sign up to being a Member on this Forum....yup....1,501 of us out there now....Your prize?...being a Bimota Owner of course...….
Thank you for the welcome guys! It certainly is nice to finally own a bit of handmade latin loveliness!
So far I have replaced the air filter, stripped and rebuilt the carbs (they each had different needle heights and massive pilot jets and wouldn't tick over) and given the front brake some feel as it was properly wooden.


A New Model of Consciousness in Space and Time – 6 | "I of my own knowledge…"
So perhaps I should work. Disappointing yesterday that I couldn't really get my head right to start – and I think I knew it ahead of time….
All right. We have spoken of time and space and separation and delayed consequences. All this was to lay the groundwork so that you may see more clearly that there are other ways of seeing yourselves than as individuals.
Remove separation because you remove space-time. Remove delayed consequences because you remove space-time. What do you now have? You have a situation in which it is harder to draw hard and fast – and arbitrary – boundaries between "this" and "that," between "I" and "other." You have a situation in which to envision is to do; yet to do is not to do anything any more permanent than had existed before it was changed. This is a very long discussion – this question of consequences without delay, and we set it aside for now, merely marking the place, as it were, so that we may concentrate on what you are like in that aspect of yourselves that is not individual and solitary.
Again – everything we say is a setting-out of at least two potential viewpoints. To see anything only one way is to force it into a strait-jacket, or rather is to force your ideas into a strait-jacket. It is not a sign of mental weakness or slovenliness to see multiple viewpoints. It is a precondition for truer understanding. Given that it is not physically possible to translate existence outside time-space into existence within time-space – that is, given that the greater cannot be comprehended by the lesser – all understanding is merely an approximation. Any view is necessarily a partial view which may be profitably complemented by other partial views from other angles. We do know that we repeat ourselves on this. We also know that merely because we repeat something several times does not mean that we are heard.
So we proceed again to five an alternate partial portrait, leaving you the task of reconciling it with other partial views of the same subject – for if you do not do the comparing and contrasting, you will merely be visiting a view, which will in no way later influence your life. To the degree that you begin to see a thing from multiple, rather than from alternate, viewpoints, your actual world will change and you will to some extent acquire mastery of what you examine.
To us you appear less as individuals made up of something solid and different than you do as hollow containers holding together many disparate threads. These threads are characteristics of all kinds. Every thing that marks you as a physical body, as an animated body, as an animal, as a human, as a ember of all the sub-categories of human, as a member of your particular clan and family, and, finally, as the particular expression of the time and place into which you were born – all these things may be seen as characteristic threads that have been gathered up within the container that you regard as "you." Now, by this analogy – it is an analogy, remember – we mean this.
Imagine a black background, and on it, a huge number of rinds. Each ring is threaded through, and each thread connects different rings, seemingly at random. That is, a thread may pass through rings A,B,D,J,Q, and Z while a second may pass through A,J,S,T, and V, and a third may pass through only O and P and a fourth through J,S,P, et cetera. What we mean to suggest is a loose network of rings connected by threads, with each thread passing though innumerable rings but not, by far, all or even most of them. Each thread passes through many rings – but skips many. Similarly, each ring gathers many threads, but far from all or even most.
To us you in bodies are the rings, and characteristics are the threads, and to us the threads are as real and as individual as the rings. Outside time-space, you see – that is, escaping the impression of separation – there is not the same clarity of distinction between "individuals" and there is not the sense of continued flow, that space and time impart. Thus, it isn't that we do not perceive the rings, but that we also perceive the threads. It is as if we on "our" "side" can perceive as solid and tangible something that you on "your" "side" can perceive only as abstract and theoretical. Thus to us it is permissible to say that left-handedness includes George and Sam, or that drunkenness has Bill and Charlie. This is unfamiliar to you, but after all that's what you are seeking here, is it not, the unfamiliar way of seeing things?
When you learn to see the threads that are characteristics running between individuals, you begin to see that it is merely arbitrary to consider individuals as – individual. If what seems a "unit" cannot exist without thousands – tens of thousands – millions – of components each of which is shared with uncounted other "units" – it is as true to see that "unit" as one node in a network as it is to see it as a separate item. Either way of seeing it is somewhat correct, and either way will allow you to deal with it adequately – but neither description alone is as adequate as both descriptions together.
As your society's environmental awareness has grown, it has begun to become evident to you, or at least to some of you, that it is as accurate to describe yourselves as sharing the same necessities like air – that is, as peripheral to the centrality of air – as to describe yourselves as central, with air being merely one of your requirements. If air can get along without you but you cannot get along without air, which has a more independent existence? If water, if food, can get along without you, but not you them, where is the primacy of the human – or rather, where is the independence? For, clearly, human activity is primary, in that it could affect and perhaps even destroy the conditions needed for its own continuation – but primacy is not the same thing and does not at all have the same meaning as independent.
A human might be described – strictly in 3D terms – as an appendage to the environmental systems that sustain life, and animal life, and finally human life. No air, no water, no relatively stringent temperature range, no chemical preconditions – no humans. That equation cannot be reversed. It is not true to say that removing humans would make impossible the conditions that allow human life.
Now, this is not a lesson in environmentalism or ecology or social science or hard science, so we ask you to return your attention to the point being made. What seem to you in time-space to be individuals – including yourselves! – do not look so separate when seen outside time-space. What seem to you in time-space merely abstractions seem a bit more solid and tangible (so to speak) outside time-space. One might say that where you see the individual rings and mostly do not see the threads except as abstractions, we see the threads as easily and as solidly as the rings.
If you will hold this image of rings and threads, it will bear fruit – if you will pardon the severely mixed metaphor.
Time for a break, we think.
Perhaps so. It's 7:30 now. Yesterday I didn't begin till 7 and didn't get very far.
Faithfulness is all. What you cannot do or do not do one day you may do another.
Yes you are, but look at it from another angle. You are struggling. That is, you are struggling on.


text:
After vote to impeach, Rep. Meijer says Congress needs to stop "lurching from one crisis to another"
By Doug Tribou • Jan 14, 2021
House Creative Services, Ike Hayman / Public Domain
Rep. Peter Meijer, R-Grand Rapids, spoke with Michigan Radio's Doug Tribou.
When the U.S. House of Representatives voted 232 to 197 to impeach President Donald Trump for the second time Wednesday, 10 Republicans joined House Democrats to vote in favor. One of them was newly elected West Michigan Congressman Peter Meijer.
After Capitol insurrection, some Michigan Republicans may join Democrats on House impeachment vote
By Abigail Censky • Jan 13, 2021
Just over a year ago President Donald Trump told a crowd of supporters in Battle Creek, that, "Tonight the House Democrats are trying to nullify the ballots of tens of millions of patriotic Americans." While he was onstage, Democrats in the U.S. House of Representatives voted to impeach him.
After a violent pro-Trump extremist mob led an insurrection at the U.S. Capitol last Wednesday and repeated attempts by the president to overturn a free and fair election, the House is expected to vote to impeach President Donald Trump for the second time.
Stateside: Stabenow calls for Trump's removal; historian's take on Capitol riot; Betsy DeVos resigns
By Stateside Staff • Jan 8, 2021
Stateside for Friday, January 8, 2021
Today on Stateside, U.S. Senator Debbie Stabenow talks about why she's joining the calls for President Donald Trump's removal from office. Also, a historical perspective on the transfer of presidential power — and why the one that's happening right now is abnormal. Plus, a look at the legacy of Education Secretary Betsy DeVos, who's resigning weeks before President-elect Joe Biden's inauguration.
Top federal prosecutor in Michigan seeks tips on Capitol mob
By The Associated Press • Jan 7, 2021
PartTime Portraits / Unsplash
A top federal prosecutor in Michigan is urging people to give tips to the FBI if they are aware of people who joined a violent mob that stormed the U.S. Capitol in an attempt to overturn the presidential election.


text:
Q: Hydration failed because the initial UI does not match nextjs How to solve this error? it says thats its in my html/xml file
the error is : Hydration failed because the initial UI does not match what was rendered on the server
I tried to change the structure of the file but i dont have much idea of what can i do, because this is just a test for a future project, so i didnt care about the layout, anyways this error got me mad, heres the code:
import React, { useState, useEffect } from "react";
import axios from "axios";
import * as PhosphorIcons from 'phosphor-react'

function HomePage(): JSX.Element {

  const [providers, setProviders] = useState([] as any[])

  useEffect(() => {
    axios.get('http://localhost:5140/providers/list')
    .then(res => {
      console.log(res)
      setProviders(res.data)
    }).catch(err => {
      console.log(err)
    })
  }, [])

  const renderedProviders = Object.values(providers).map(provider => {
    return (

{provider.name}

{provider.location.city}

{provider.service.type}

          {(() => {
        if (provider.starAverage === 5) {
          return (

<PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />

          )
        }
        if (provider.starAverage === 4) {
          return (

<PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />

          )
        }
        if (provider.starAverage === 3) {
          return (

<PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />

          )
        }
        if (provider.starAverage === 2) {
          return (

<PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />

          )
        }
        if (provider.starAverage === 1) {
          return (

<PhosphorIcons.Star size={26} color="#2dc88c" weight="fill" />
              <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />

          )
        }
        if (provider.starAverage === 0 || provider.starAverage === null) {
          return (

 <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
              <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />
            <PhosphorIcons.Star size={26} color="#ADADAD" weight="fill" />

          )
        }
      })()}

Telefone: {provider.phone}

    );
  });
  return (
    <>

Lista de Prestadores:

      {renderedProviders}

      </>

  )
}

export default HomePage;


AZ Wholesale Flooring is a one-stop warehouse showroom for name brand flooring!
AZ Wholesale Flooring specializes in providing name brand flooring at wholesale prices! Whether you're looking for laminate, tile, carpet or wood flooring, we invite you to visit our warehouse showroom to see samples for your home or office space.
Looking to save money on your next remodel project? AZ Wholesale Flooring does more than just flooring; we can also help with shower tile, kitchen countertops and kitchen backsplashes. Design your own custom kitchen look – and let our professionals handle the installation.
AZ Wholesale Flooring is your one-stop warehouse showroom for name brand flooring since 1984.


text:
en.infoglobe.cz » Surinam - Omitted Country Of South America I.
Surinam - Omitted Country Of South America I.
Justice, duty, loyalty... this is a motto of small state, situated in South America, which could be proud on many specialities.
Surinam Republic is a country, situated in north-east coast of South America. Ti ll 1975, Surinam was Netherland´s colony and named as Netherland´s Guyana. The country borders in west with Guyana (former British Guyana), in south with Brasil, in east with French Guyana, and from north, it is washed with waters of Atlantic Ocean. The coast line of Surinam is 360 kms long, the distance from north to the east makes 400 kms.
Population number: 519 000 inhabitants (2009). 68% of total population live in towns. Paramaribo is a capital of the country and the greatest town at the same time. Other towns are, such as: Niew Nickerie, Moengo, Apoera, Paranam, Niew Amsterdam.
Administrative organization: 10 districts
Extention: it makes totally 163 265 square kilometres. The highest peak-Juliana Mountain (1230 metres above sea level).
Political system: The Republic
Official language: it is Dutch. Anyway, also the English, Surinam language , Hindu, Indonesian, Chines or Java languages are being used.
Main religions: Hindu (26%), Catholics (22%), Islam (19%), Protestantismus ( 18%).
Nationality structure: Indians and Pakistans (37%), Creoles (31%), Javans (15,3%), Marons (10,3%), Indians (2,6%), Chinese (1,7%), Burs - Europeans- (1%), Jews and Lebanese (together 1,1%).
Currency: Surinam goulden (SRG)
National holiday: Independance day - 25th November
On Surinam territory, it could be distinguished coastal Guyana plain land, savannah belt and tropical forests of Guyana Highlands. Guyana plain land is 24 kms wide in west, and even 80 kms in east. It is composed from alluvial and sea sands and a clay. The surface is flat and swampy, and it is partially crossed with coastal rivers and earthworks. Several deep forests were preserved till now. In south direction, on slopes of Guyana Highlands, narrow savannah belt is to be found. The soil is not too fertile and the agriculture is less developed. Guyana Highland is composed from old crystalinic minerals. The surface is mainly covered with tropical virgin forests. On the backround, mountain massifs and low mountain ranges are surpassing, especially Wilhelmina Mountains, including its highest peak - Juliana Mountain (1230 m).
On south slopes of this mountain area, the savannahs are apperating, situated partially outside Surinam territory.
The country is crossed with four great rivers, flowing in the north direction. It is Courantyne (flowing along the border with Guyana), Coppename, Gran Rio and Suriname. The other rivers, such as Cottica and Commewijne (which mouth into Surimam river), Saramacca (which mouth into Coppename river) and Nickerie (tributary of Courantyne river) are quite important for agriculture and for loading transport.
However, owing to rapids, the vessels could be navigated within the boundaries of coastal plainland only. So, the south areas of the country were practically isolated from the remaining world till recent time period.
The climate in Surinam is tropical, equatorial, humid and hot. The average month temperatures vary between + 23° C and + 31° C. The yearly average precipitations make 2300 mm in plainland, and more than 3000 mm in the mountains. In Surinam, you can follow two wet periods (since middle of November till February and since end of March till middle of July), and two dry periods (shorter, since February till middle of march, and longer, since August till middle of November).
Text: Maxim Kucer
Translation: ing. Jan jonáš
http://www.andasuriname.com/
http://www.surinameembassy.org/welcome.shtml
http://www.vokrugsveta.ru/encyclopedia/index.php?title=%D0%A1%D1%83%D1%80%D0%B8%D0%BD%D0%B0%D0%BC#_note-5
http://www.krugosvet.ru/enc/Earth_sciences/geografiya/SURINAM.html
http://archive.travel.ru/suriname/sites/
http://reports.travel.ru/reports/2008/08/125506.html
http://bp1.blogger.com
http://www.panoramio.com/photo/3084063
http://www.travel-pictures-gallery.net/suriname/suriname-0007.html
http://upload.wikimedia.org/wikipedia/commons/c/c1/Jodensavanne_1830.jpg
http://www.camps-bay.de/media/reiseinfos/tafelberg/Tischtuch_Tafelberg_g.jpg


text:
Home / Book Tickets / Tours & Tickets / Walking Tours / Alumni Tours
Alumni Tours is an independent tour company with a difference. Located in the heart of Cambridge & Oxford in royal blue uniform, we provide walking tours with real Cambridge & Oxford University students and graduates as well as traditional Cambridge punting tours.
Categories: Book Tickets, Tours & Tickets, Walking Tours
A ONE-OF-A-KIND EXPERIENCE
We think the best way to see Cambridge & Oxford is with the real experts. That's why our walking tour guides are always students of the University of Cambridge & Oxford, who take you in and around the colleges while offering their personal take on famous history and student life. For a different perspective, try a relaxing punting tour on the river. An iconic part of Cambridge's heritage, punting is the ideal way to see and learn about some of the most famous Cambridge colleges.
A CITY OF LEARNING
For centuries Cambridge & Oxford have been home to some of the greatest minds and biggest ideas in human history. They are cities where people come to explore, discover, and imagine. During your visit, let Alumni Tours bring these cities of learning to life.
Join us on a shared tour, or request a more private affair. Whether you're a curious traveller or prospective student, hen party or school group, our professional and enthusiastic team is here to meet all your needs, answer all your questions, and help you make the most of your visit to Cambridge & Oxford.
OXFORD WALKING TOURS
In just an hour walk through pivotal moments of human history: from petty and outlandish rivalries to architectural masterpieces with confusing names. See the lamp-post which inspired Narnia and the architecture which has inspired His Dark Materials. Visit the meadows where C.S. Lewis first recounted the story of Alice in Wonderland. Marvel at some of the world's greatest examples of Gothic and Baroque architecture. Inspiring, baffling, and downright outrageous: Oxford is a city full of stories waiting to be told.
CAMBRIDGE WALKING TOURS
In just an hour and a half, walk through a thousand years of human history: from an Anglo-Saxon church tower to a contemporary (and controversial) clock that doesn't even tell the time properly. See the rooms where Newton wrote his theory of gravity and hear the truth behind the apple tree myth. Visit the pub where Watson and Crick announced one of the greatest discoveries of the twentieth century. Marvel at some of the greatest examples of Gothic and Neoclassical architecture in the world. Inspiring, baffling, and downright outrageous: Cambridge is a city full of stories waiting to be told.
Oxford University and City Walking Tour
£19.00 Book Now
Harry Potter Highlights Tour
£130.00 Book Now
City Sightseeing Oxford – Open Top Bus Tour and Free Optional Walking Tour
Shopping for History or Downton Abbey and Civil War Tours in a Classic Car – Concierge History Tours
Car, Bus & Coach Tours


text:
West Essex NJ Pest News
The Cicadas Have Emerged in West Essex NJ
Posted By: Carolyne Volpe Curley
Article Credit: http://www.thealternativepress.com/
Saturday, June 1, 2013 • 12:31pm
ESSEX FELLS, NJ – The emergence of the cicadas has begun in Essex Fells according to photos and video provided to West Essex TAP by Corrine Feindt-Summerville of Caldwell. Friday afternoon, as she explored the area over by The Pond, she started taking photos as she saw what definitely appears to be the expected cicadas. Although they may be alarming by their numbers, there is no cause for concern because they do not sting or bite and they aren't known to transmit disease. If a human or animal goes near them, they will most likely fly away.
"From what a friend told me they are only in the Fells so far and not here near my home in Caldwell yet," Summerville said.
The 2013 Emergence ~ Brood XIV
This particular species of insect, Magicicada periodical cicada, last appeared during 1996, which scientists referred to as the "Brood II periodical cicada emergence." This year's insects are primarily expected to be prevalent in the tri-state area as well as the Eastern Seaboard states from Georgia to Maryland. However, according to this online map which is updated daily, they have already made their way to Kentucky and up to Rhode Island.
The insects are set apart from other cicadas by their appearance; they have red eyes, orange wings and black bodies. Though they are also referred to as locusts, they are not true locusts which are actually more like grasshoppers.
"It was very cool and I knew right away they are cicadas, I have seen them before when I was a girl scout leader," Summerville said.
Credit: Corrine Feindt-Summerville
Nymphs and Imagoes
The youngest cicadas are called "nymphs" and they live underground for seventeen years. In the spring of their seventeenth year, they begin to construct tunnels to be able to exit up to the ground surface. Each hole is about a 1/2 inch wide.
When they are ready to emerge, the nymphs leave their underground tunnels at sunset, locate nearby vegetation and begin to start the molting process towards adulthood. Once they have fully molted, the adult cicadas, called "imagoes," will appear tannish-white and then their shell will harden and they will darken again.
Feindt-Summerville explained that in the West Essex area, they are just now hatching from the ground up; news reports have suggested the hatching is due to the excessive heat. "I might have to go back for more pictures of them climbing up to the surface. It's so cool; they climb out backwards and then they get rid of their shell and their wings and it takes some time for them to open up. They open like a balloon, it's very interesting."
The entire emergence period–from when the nymphs first come up from the ground until they grow into adults and finally die–is about six weeks long. The decaying cicada bodies around trees effectively supply nitrogen and other nutrients to the roots of the tree.
Young Tree and Shrub Damage
Although they are no danger to humans, the cicadas can harm young trees or shrubs because they may feed from the plant or lay eggs in its branches. An effective way to protect small trees or shrubs is as follows:
First use a garden hose to spray all insects off of the tree or shrub
Nest, cover them with screening material so the insects can't get through to them.
Two Reasons Why Dogs Should Not Eat Cicadas
Dogs seems to enjoy eating copious amounts of cicadas and the insect would be considered nutritious for them; animal protective groups, however, have issued warnings suggesting dogs should not be encouraged to do so:
Small pets can choke on the hard wings and body parts
Most importantly, the cicadas may have been sprayed with pesticide which is poisonous to animals
The Chirping
The chirping sounds cicadas produce are actually the mating songs males use to lure female cicadas. Power tools and lawn mowers apparently create sounds which one cicada mistakes for another cicada; this therefore attracts them to land on the tool. The best time to use these tools are early morning or after dusk when the insects are less active.
The Next Seventeen Years
A female may lay as many as 600 eggs. After ten weeks, the eggs hatch and those new nymphs leave the trees, burrow underground and begin the next seventeen year cycle all over again.
For further information, this website called Cicada Mania has a large amount of facts, multimedia and maps.


text:
Apache este un server HTTP de tip open source. Apache a jucat și joacă un rol important în dezvoltarea webului, fiind folosit în prezent în circa 65.2 % din paginile web.
Cuvântul apache (pronunțat ) este numele apașilor, triburi de amerindieni.

Apache este un server web cu o contribuție notabilă la dezvoltatea Internetului (world wide web). Apache a reprezentat prima alternativă viabilă la Netscape Communications Corporation, și a evoluat rapid în  funcționalitate și performanță ca un rival competitiv pentru alte servere web bazate pe Unix.

Apache este dezvoltat de o comunitate deschisă de programatori sub emblema Apache Software Foundation. Aplicația este disponibilă pentru o mare varietate de sisteme de operare incluzând Unix, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X, Microsoft Windows si OS/2.

Serverul Apache este caracterizat ca fiind un software gratuit și open source, acesta făcând ca, începând din aprile 1996, el să fie cel mai popular server HTTP. Cu toate că în noiembrie 2005 a început să piardă din cota de piață, în aprilie 2008 Apache stătea încă la baza a peste 50 % din siturile web, iar în iunie 2013 a ajuns la 65.2%. Apache este folosit pentru 46,91% din totalul domeniului românesc.

Prima versiune a serverului a fost creată de Robert McCool, care la vremea aceea era implicat în proiectul National Center for Supercomputing Applications, cunoscut pe scurt ca NCSA HTTPd. A doua versiune a serverului a fost o rescriere substanțială, de data aceasta punându-se accentul pe crearea unui layer prioritar (Apache Portable Runtime) și a suportului de module.

Apache suportă o mare varietate de module care îi extind funcționalitatea, acestea variază de la server side programming și până la scheme de autentificare. Câteva limbaje suportate sunt: mod_perl, mod_python, Tcl si PHP. Ca alte module putem enumera : SSL si TLS support (mod_ssl), un modul proxyun, modul de rescriere URL (cunoscut ca un motor de rescriere  mod_rewrite), custom log files (mod_log_config) și suport de filtrare (mod_include și mod_ext_filter).
O altă calitate a serverului Apache este virtual hosting (găzduirea virtuală), care constă în posibilitatea de a găzdui mai multe situri simultan pe același server.

Principalul competitor al serverului Apache este Microsoft Internet Information Services (IIS), urmat de Sun Java System Web Server al companiei Sun Microsystems și multe altele, cum ar fi Zeus Web Server.

Apache este folosit de unele din cele mai mari situri din lume. Astfel, motorul de căutare folosit de Google folosește o versiune modificată de Apache numită Google Web Server (GWS); și proiectele Wikimedia inclusiv Wikipedia rulează tot pe un server Apache.

Note

Vezi și
 Fundația Apache
  Platforma LAMP

Legături externe
 Instalare Apache 2.2
 Optimizarea serverului Apache

Servere
Server HTTP

Software cu sursă deschisă
Software liber
Programe UNIX
Software pentru Linux

redpajama_set_name: RedPajamaWikipedia


text:
Marvin Pontiac – The Asylum Tapes
Leonard Nevarez | November 28, 2017 | new music | No Comments
Last Friday, a new collection of obscure blues legend Marvin Pontiac (1932-1977) surfaced. The Asylum Tapes appeared with no advance warning or publicity materials, just this statement: "Marvin Pontiac was anonymously sent a 4 track tape recorder during the years he was held at Esmerelda State Mental Institution. This is what he did with it."
Before you question the ethicality of selling outsider art made by a mentally unbalanced individual, take note: Marvin Pontiac is the musical alter ego of John Lurie. Which makes this album even more notable, since Lurie hasn't released new music in seventeen years! At one time downtown NYC's renaissance man-about-town, Lurie came to prominence in the no wave era with his fake-jazz band the Lounge Lizards. Starring roles in Jim Jarmusch's 1986 film Down By Law and the 1991 fishing show Fishing With John made him ubiquitous in the expanding boho-alt media culture. Then, after 2000's The Legendary Marvin Pontiac: Greatest Hits (his first-ever vocal album), Lurie suddenly ceased performing to cope with chronic Lyme disease and dedicate himself to painting.
The Asylum Tapes finds Pontiac/Lurie intoning primitivist lyrics in an addled baritone, plucking Mississippi Delta-meets-Northern Africa guitar and banjo, and honking occasional blasts of electric harmonica, now without backing band. Though lacking the ensemble magic of Lurie's previous music, it's not necessarily a quiet album, filled out by multiple voices and the occasional snippets of nature recordings. Given his reported tribulations of the past two decades, songs like "I Am Not Crazy," "I Want To Get Out Of Here," and "Don't Fuck With Me" may in fact not be vehicles for play-acting — a criticism leveled at Lurie's otherwise acclaimed first Marvin Pontiac album.
John Lurie's synesthetic art remains fascinating no matter his platform, which until last week seemed limited to painting and Twitter. Whether or not The Asylum Tapes means more recordings are forthcoming, it's a pleasure to be hear his music and voice again.
The Asylum Tapes are out now on Strange and Beautiful Music.
Tags:John Lurie, Lounge Lizards, Marvin Pontiac
Cross Record, "Steady Waves"
Jane Weaver – "Did You See Butterflies?"
Nick Oliveri – "Human Cannonball Explodes"
Heaven's Jail – "Suicide"
A sociology professor living in upstate New York, Leonard Nevarez is patiently waiting until his kids are old enough for a family roadtrip to Maryland Deathfest. He blogs at musicalurbanism.org and is writing a book about Martha & the Muffins and the late 70s/early 80s downtown Toronto music scene.


text:
Siol nan Gaidheal forum
Whilst this forum is moderated, opinions expressed are those of the person posting, and are not necessarily those of the organisation.
Board index » Siol nan Gaidheal » Celtic Links
CofE apologises for massacring Cornish
Moderators: A Jolly Sailor, bobthebudgie, Friseal, webmaster
Scottish Republican
Post subject: CofE apologises for massacring Cornish
Location: In the early days of a better nation
BISHOP BILL APOLOGISES FOR CORNISH MASSACRE
SIMON PARKER
06:00 - 30 June 2007
The massacre of thousands during the vicious suppression of a Cornish rebellion more than 450 years ago was an "enormous mistake" which the Church should be ashamed of, the Bishop of Truro said yesterday.
In acknowledging the "brutality and stupidity" of the atrocities on behalf of the Church, Bishop Bill Ind tried to heal much of the hurt felt by many Cornish people, who believe the Church of England has long tried to ignore the events of 1549 Prayerbook Rebellion.
In a wide-ranging address at Pelynt Parish Church in South East Cornwall, the man dubbed "The People's Bishop" attempted to draw a line under a moment in history which left one in ten of the Cornish population dead.
Bishop Bill, who was in Pelynt to be presented with the prestigious Trelawny Plate, said: "I am often asked about my attitude to the Prayerbook Rebellion and in my opinion, there is no doubt that the English Government behaved brutally and stupidly and killed many Cornish people. I don't think apologising for something that happened over 500 years ago helps, but I am sorry about what happened and I think it was an enormous mistake."
The Prayerbook Rebellion, sometimes called the Western Rising, was prompted by Edward VI's introduction of a range of legislation, including the use of English in all forms of worship. In Cornwall, where the vast majority of the population spoke only Cornish, the new measures effectively took away the means of worship. When the Cornish protested, English forces responded with a series of massacres. During one notorious incident, 900 bound and gagged prisoners had their throats slit in ten minutes.
Figures representing all areas of Cornish life attended the special Trelawny Plate Service, where Lady Mary Holborow, the Lord Lieutenant of Cornwall, Sir John Trelawny, Vice Lord Lieutenant Michael Galsworthy and others heaped praise on Bishop Bill for his contribution to the spirit of Cornwall during his ten years in office.
There were prayers, songs from Pelynt Male Voice Choir and a reading in Cornish by the Grand Bard of the Gorsedd, Vanessa Beeman.
Lady Mary said: "This is a very exciting and important occasion for Cornwall. It recognises the part Bishop Trelawny played in the history of Cornwall and in the modern life of Cornwall."
She praised Sir John Trelawny and his team for their "hard work, generosity, commitment and patience" in creating Cornwall's "awards of awards". She said the plate would be presented every two years to the person judged by a panel to have contributed most to the spirit of Cornwall.
Sir John, 13th Baronet Trelawny, spoke about his ancestor, Jonathan Trelawny, who was one of seven bishops imprisoned in the Tower of London. On the day of his release - exactly 319 years today - cannons were fired in celebration and ale provided for all. He said there was no better place than Pelynt Church to make the award because Jonathan Trelawny was interred there.
"Jonathan Trelawny stood up for the Cornish - and so does Bishop Bill," he said. "There can be few in Cornwall who have not been touched by the influence of him. He is a man of modesty and firm opinions."
Presenting him with the plate - which will be kept in Truro Museum - Sir John added: "Good can be a trite word, but Bill is a truly good man."
It was left to Bishop Bill himself to sum up the importance of the day. In a lengthy address, he took the opportunity to speak his mind on a range of subjects affecting his adopted home, from Cornwall's distinctiveness and sense of place to deprivation, farming church unity and the role of a bishop.
"Everything about Cornwall marks it as a place to be treasured and loved," he said. "It has never been an English shire, it has its own language and it reminds us, by its history, of links to Ireland, Wales, Brittany and a Celtic past."
He touched on calls for Cornish independence, but said "for me this would lead to a denial of the complexity of our history", adding that like Ireland, Cornwall had been "saddled with the English problem" for 500 years - and not the other way round.
He also spoke of his disappointment that there was not more interdenominational agreement between Anglicans and Methodists.
"I am deeply sorry for, and indeed ashamed of, the division between the Anglican and Methodist churches. Christian disunity is always a scandal but the division between Anglicans and Methodists in Cornwall has a special significance in life and culture here."
He concluded his address by saying: "And so we live in this marvellous place, believing moreover that England needs Cornwall. We need to talk ourselves up rather than down and make the most of our peninsularity."
The service concluded with a rousing version of the Cornish anthem, Trelawny, led by Pelynt primary school children
http://www.thisiscornwall.co.uk/display ... K=17697818
"The thistle rises and forever will" - MacDiarmid
NB - I am not the same person as the poster "Scottish republic".
http://www.thisiscornwall.co.uk/displayNode.jsp?nodeId=144125&command=displayContent&sourceNode=232510&home=yes&more_nodeId1=232470&contentPK=17712187
By the way, you can comment on this article.
Jump to: Select a forum ------------------ Siol nan Gaidheal Events Diary, FAQ and Forum Announcements Reference Archive Culture and the Arts General Forum History Language Gàidhlig a-mhain Learners and lessons General Discussion Scots Politics Celtic Links Links Merchandise Football and sport in general
Copyright Siol nan Gaidheal © 2003-15


On 2 June 2014 at Amnesia in Ibiza, Sven Väth will present the first of 18 big Monday nights to rattle your cage and sweat those new shoes. Cocoon 15, their most sonically sensual series of adventures to date, is planned with loving precision for this year, where anything can happen and probably will.
Cocoon once again presents some of the best artists delivering the very best in techno and house music and are thrilled to announce that Luciano returns in 2014 with eight big shows which will showcase his new concept, Origins, on the floors of Amnesia. The man who started it all, Sven Väth, whom, on the back of a world tour, will play 14 nights supported by a top line up representing all that is current on today's dancefloors. Check the teaser video below.


Brief : total refurbishment of a 1930 semidetached house, new kitchen /dining/family room open plan, 4 bedrooms, 1 no office, bathroom and en-suite.
– Airtightness , the air leakage test results is 3.5 air changes per hour using 50 Pascal under pressurisation testing.
– A rated double glazed windows and doors, Alu clad From Nord Dan.
– Water harvesting system ( 3750 liters ) with U.V filter to extend use of rainwater to the shower and bath.
– Using spread foam soya based insulation, oil free.