text:
Amara Blessing Nwosu: Love, Life and Relationship Counseling Online
Love, Relationship, and Life conselling advices online.
Special Articles by Amara
Share With Amara
Contact Amara
What Pushed her into Double Dating?
My condolence ma.. Please I want to ask you a very important question... I have this girl I love dearly, we are currently in a relationship.. Last week she lied to me that she was travelling to her village and she went out with a guy ..
She spent the whole weekend in the guy's house, and when she got back, she told me all sort of lies about things that happened in the village. But somehow she started having issues with this guy few days back. The guy was accusing her of sleeping with his friend, then she came back and told me everything.
I have plans of settling down with this girl, I see some good qualities in her but I don't know. I keep asking her, what could have pushed her to such thing? She said she thought the guy would marry her.. What is really your advice.
Personally I don't encourage anyone to date a liar, because you can't even tell what to believe or what is true of his or her personality.
Secondly I won't encourage you to consider marriage with a partner who is desperate for marriage. Why not you might ask, it's because desperation can push one to become manipulative and deceptive.
Most individuals who are desperate doesn't know who they are, what they truly need, what their personality can carry, their limitations and capacity in life. Because they're eager to settle down with anyone, they can do anything to achieve that including considering diabolic means.
She needs to decide for herself what she wants, and organise her life in a manner that anyone who has genuine intentions about her won't be in doubt of her identity, passion, purpose and personality.
She can't be lying and cheating on you and then expect that you should open your arms and receive her when she's opening her legs to receive many penis. Let her finish with her would be husband before coming back to tell you hopeless stories.
By love ambassador at 12:14:00 PM
Amara on Twitter
Follow @AVLOfficial
Amara's Book
Contact Amara Form
Post Archive January (1) July (1) May (1) March (1) February (1) November (1) September (1) June (1) May (1) April (1) February (2) January (1) November (4) October (3) September (7) August (13) July (5) June (7) May (7) April (10) March (21) February (22) January (24) December (16) November (36) October (19) September (17) August (27) July (45) June (38) May (40) April (36) March (15) February (21) January (43) December (27) November (29) October (94) September (121) August (127) July (118) June (78) May (93) April (89) March (124) February (128) January (154) December (108) November (102) October (100) September (112) August (126) July (180) June (157) May (110) September (4) July (2)
Home | Privacy Policy | Contact Amara
Disclaimer: All articles here are solely owned by Amara Blessing Nwosu; legal actions apply
Copyright © 2018, AmaraOfficial.
Designed by Tunde Sanusi (Tuham)


Israel Hill, one of the pioneer farmers of Oakland township, was born in Indiana, in 1827, a son of Ishmael Hill, a native of North Carolina, born in October, 1808. He was married April 4, 1850, to Miss Louisiana Pemberton, a daughter of Thomas Pemberton of Kentucky.
Christian Pilger, a live man and old citizen of Beardstown, was born in Waldeck, Prussia, in 1836, and came of a good old German family. His father, Fred Pilger, was at one time Mayor, as had been his father and grandfather before him. He was married in this city to Miss Margaret Schuman, born in Baden, Germany, and came to this country when eighteen years of age. Her parents also came to Beardstown and died here consistent members of the Lutheran Church.
Samuel M. Schroder, a rising young business man of Oakland township, and one of the most progressive agriculturists of Schuyler county, was born in McDonough county, Illinois, in 1860, on the 27th day of April. His father, Nicholas Schroder, was a native of Germany, but emigrated to America with his mother when a lad of eleven years, in 1837. Mr. Schroder was united in marriage, in 1880, to Miss Sarah E. Smith, a native of Fulton county, Illinois, and a daughter of John and Rebecca (Barcus) Smith, natives of Pennsylvania and Illinois, respectively.
John Smith Walker was born in Adams county, Pennsylvania, in November, 1826, the son of Andrew Walker, a native of the same state and county. Mr. Walker was united in marriage, in 1868, to Elizabeth Huckeby, a native of Breckenridge county, Kentucky, and a daughter of Thomas Huckeby.
Thomas Wilson, President of the Schuyler County Bank, and a leading financier and business man of Rushville, Illinois, was born near Five-Mile Town, in county Tyrone, Ireland, in March, 1812. He was married September 18, 1834, in Pittsburg, Pennsylvania, to Miss Susan Clark, an estimable lady, a native of Lancaster county, that State, and a daughter of John and Eleanor (Greer) Clark.
William Wood, a prominent pioneer of 1827, resides on section 17, Huntsville township. He is the son of Mitchell and Nancy (Skiles) Wood, and was born in Wayne county, Missouri, March 8, 1824. In the fall of 1848 he married Hulda Ann Teel .
Henry J. Schroeder, one of the old and well known contractors and builders of Beardstown, was born in the kingdom of Hanover, Germany, in 1833. He was married in Beardstown, to Miss Anna Mohlman, born in one of the Rhine provinces, Germany, in 1841, a daughter of Henry Mohlman.
Rev. James De Witt was born at Hope, Warren county, New Jersey, November 5, 1817, a son of James and Anna (Coates) De Witt; Mr. De Witt was united in marriage, January 25, 1842, to Miss Ellen Little, a native of Columbia, Lancaster county, Pennsylvania.
John S. Stutsman was born in Dubois county, Indiana, April 10, 1827, a son of Alexander D. and Rhoda (Seybold) Stutsman. Mr. Stutsman was united in marriage, March 21, 1850, to Miss Sarah Howell, who was born in Monroe county, Indiana, January 24, 1831.


text:
#include "stdafx.h"
#ifdef _WIN32
#include "./commhdrs.h"
#else
#include "./commhdrs.h"
#include <sys/resource.h>
#endif

UINT16			// generated 16bit hash over the lowercased chromosome name; hashes as 0 if pszName == null or is empty
CUtility::GenHash16(char *pszName)	// name will be lowercased whilst hashing
{
int Hash;
char Chr;
Hash = 19937;			// circular prime as hash seed

if(pszName == NULL || pszName[0] == '\0')
	return(0);

while(Chr = *pszName++)
	{
	Hash = (Hash ^ (int)tolower(Chr)) * 3119;	// a circular prime
	Hash ^= (Hash >> 13);
	Hash &= 0x0ffff;
	}
if(Hash == 0)			// 0 reserved as an error indicator so force hash to be 19937
	Hash = 19937;
return((UINT16)(Hash & 0x0ffff));
}

int						// // generated 24bit hash over the lowercased chromosome name; hashes as 0 if pszName == null or is empty
CUtility::GenHash24(char *pszName) // name will be lowercased whilst hashing
{
int Hash;
char Chr;
Hash = 37199;			// circular prime as hash seed

if(pszName == NULL || pszName[0] == '\0')
	return(0);

while(Chr = *pszName++)
	{
	Hash = (Hash ^ (int)tolower(Chr)) * 19937;	// a circular prime
	Hash ^= (Hash >> 21);
	Hash &= 0x0ffffff;
	}
if(Hash == 0)			// 0 reserved as an error indicator so force hash to be 1
	Hash += 1;
return(Hash);
}

// ClassifyFileType
// Attempt to classify the alignment file as one of CSV, BED or SAM from it's initial 8k char contents
// Currently processes CSV, BED and SAM format file types
// Assumes must be SAM if initial lines have at least one prefixed by a '@' followed by a 2 letter record type code
//
etClassifyFileType
CUtility::ClassifyFileType(char *pszFileName)
{
int hFile;
gzFile gz;
BGZF* pInBGZF;
int BuffLen;
int BuffIdx;
UINT8 Buffer[cFileClassifyBuffLen];
UINT8 *pBuff;
bool bStartNL;
bool bSkipEOL;
UINT8 Chr;
int NumLines;
int FieldCnt;
int TabCnt;
int CommaCnt;
int FldLen;
bool bInQuotes;
int LikelyCSV;
int LikelyBED;
int LikelySAM;
int LikelyNonCSVSAMBED;
bool bSeenSAMHdrs;
int FileNameLen;
bool bGZd;

FileNameLen = (int)strlen(pszFileName);
bGZd = false;
if(FileNameLen >= 4)
	{
	if(!stricmp(&pszFileName[FileNameLen-3],".gz"))
		bGZd = true;
	else
		{
		if(FileNameLen >= 5 && !stricmp(&pszFileName[FileNameLen-4],".bam"))
			{
			hFile = open(pszFileName,O_READSEQ);
			if(hFile == -1)
				return(eCFTopenerr);
			// BAM will using BGZF compression ..
			if((pInBGZF = bgzf_dopen(hFile, "r"))==NULL)
				{
				gDiagnostics.DiagOut(eDLFatal,gszProcName,"ClassifyFileType: unable to initialise for BGZF processing on file '%s'",pszFileName);
				close(hFile);
				return(eCFTopenerr);
				}
			hFile = -1;

			// try reading the header, bgzf_read will confirm it does start with "BAM\1" ....
			if((BuffLen = (int)bgzf_read(pInBGZF,Buffer,100)) < 100)		// will be < 100 if errors ...
				{
				gDiagnostics.DiagOut(eDLFatal,gszProcName,"ClassifyFileType: Not a BAM format file '%s'",pszFileName);
				bgzf_close(pInBGZF);
				return(eCFTopenerr);
				}
			bgzf_close(pInBGZF);
			return(eCFTSAM);
			}
		}
	}

// now can try to actually open file and read in first cFileClassifyBuffLen chars
if(bGZd)
	{
	gz = gzopen(pszFileName,"rb");
	if(gz == NULL)
		{
		gDiagnostics.DiagOut(eDLFatal,gszProcName,"Open: unable to open for reading gzip'd file '%s'",pszFileName);
		return(eCFTopenerr);
		}
	BuffLen = gzread(gz,Buffer,sizeof(Buffer)-1);
	gzclose(gz);
	}
else
	{
	hFile = open(pszFileName,O_READSEQ);
	if(hFile == -1)
		return(eCFTopenerr);
	// read the 1st cFileTypeBuffLen into buffer
	BuffLen = read(hFile,Buffer,sizeof(Buffer)-1);
	close(hFile);
	}

if(BuffLen < cMinFileClassifyLen)	// an arbitary lower limit!
	return(eCFTlenerr);

Buffer[BuffLen] = '\0';
pBuff = Buffer;
NumLines = 0;
LikelyCSV = 0;
LikelyBED = 0;
LikelySAM = 0;
LikelyNonCSVSAMBED = 0;
BuffIdx = 0;
bStartNL = true;
bSeenSAMHdrs = false;
while(Chr = *pBuff++)
	{
	BuffIdx += 1;
	if(bStartNL)
		{
		FieldCnt = 0;
		TabCnt = 0;
		CommaCnt = 0;
		FldLen = 0;
		bInQuotes = false;
		bStartNL = false;
		bSkipEOL = false;
		NumLines += 1;
		}
	if(Chr == '\n' || Chr == '\r')			// if at end of line
		{
		bStartNL = true;
		bSkipEOL = false;
		if(FieldCnt < 3)					// BED can have down to 3 fields, CSV alignment and SAM should have more
			continue;

		if(!bInQuotes)
			{
			if(CommaCnt >= 3 && CommaCnt > TabCnt)		// if at least as many commas as tabs as assumed field separators then most likely a CSV file
				LikelyCSV += 10;
			else							// if more tabs than commas then could be either BED or SAM
				{
				if(bSeenSAMHdrs)
					{
					LikelyBED += 5;
					LikelySAM += 10;			// SAM would be distinguished by it's header lines starting with '@"
					}
				else
					{
					LikelyBED += 20;
					LikelySAM += 5;
					}
				}
			}
		continue;
		}

	if(bSkipEOL)
		continue;

	if(!FieldCnt && !FldLen && (Chr == ' ' || Chr == '\t'))		// simply slough all leading whitespaces before intial field starts
		continue;

	// nested quotes are potentially a problem; currently quotes are simply sloughed
	if(Chr == '\'' || Chr == '"')
		{
		bInQuotes = !bInQuotes;
		continue;
		}

	if(!FieldCnt && !bInQuotes && Chr == '@' || Chr == '>')
		{
		if(Chr == '@')				// if SAM then header line(s) should be present and can be expected to start with "@HD", "@SQ", "@RG", "@PG", "@CO"
			{
			if(BuffIdx <  (BuffLen - 3))
				{
				if(((*pBuff == 'H' && pBuff[1] == 'D') ||
					(*pBuff == 'S' && pBuff[1] == 'Q') ||
					(*pBuff == 'R' && pBuff[1] == 'G') ||
					(*pBuff == 'P' && pBuff[1] == 'G') ||
					(*pBuff == 'C' && pBuff[1] == 'O')) &&
					(pBuff[2] == ' ' || pBuff[2] == '\t' ))
					{
					bSeenSAMHdrs = true;
					LikelyNonCSVSAMBED = 0;
					LikelySAM += 10000;
					bSkipEOL = true;
					continue;
					}
				else
					{
					if(!bSeenSAMHdrs)					// if no SAM headers parsed then could easily be a fastq...
						{
						LikelyNonCSVSAMBED += 50;
						bSkipEOL = true;
						continue;
						}
					}
				}
			}
		if(Chr == '>')									// if at start of line then could easily be fasta...
			LikelyNonCSVSAMBED += 50;
		}

	switch(Chr) {
		case ' ':			// simply slough spaces
			continue;

		case ',':			// if comma then likely is a csv, but could still be BED if in optional fields 9 (itemRgb) onwards
			if(TabCnt < 8 && FieldCnt >= TabCnt)
				{
				FieldCnt += 1;
				CommaCnt += 1;
				FldLen = 0;
				}
			break;

		case '\t':			// tabs are in BED and SAM as field separators, but could also be present in CSV as spacers
			if(CommaCnt < 3 && FieldCnt >= CommaCnt)
				{
				FieldCnt += 1;
				TabCnt += 1;
				FldLen = 0;
				}
			break;

		default:			// any other char is assumed to be part of an actual field value
			FldLen += 1;
			break;
		}
	}

if(LikelyNonCSVSAMBED >= 250 || (LikelyCSV < 10 && LikelyBED < 10 && LikelySAM < 500))
	return(eCFTunknown);

if(LikelyCSV >= LikelyBED && LikelyCSV >= LikelySAM)
	return(eCFTCSV);
if(LikelyBED >= LikelySAM)
	return(eCFTBED);
return(eCFTSAM);
}

bool						// true if requested number of bytes was written to pOutFile
CUtility::SafeWrite(void *pOutFile,		// either gzFile or file handle
					void *pBuff,		// pts to buffer containing data to write
					size_t Max2Write,	// write this many bytes from pBuff
					bool bgzOut)		// true if pOutFile pts to a gzFile, false if pOutFile is file handle
{
if(pOutFile == NULL || pBuff == NULL || Max2Write == 0)
	return(false);
if(bgzOut)
	return(SafeWrite_gz(*(gzFile *)pOutFile,pBuff,Max2Write));
return(SafeWrite(*(int *)pOutFile,pBuff,Max2Write));
}

bool	// true if requested number of bytes have been compressed to pgzFile
CUtility::SafeWrite_gz(gzFile pgzFile,void *pBuff,size_t Max2Write)
{
int Written;
int BuffLen;
UINT8 *pByte = (UINT8 *)pBuff;
Written = 0;
while(Written >= 0 && Max2Write > 0)
	{
	BuffLen = (int)min(Max2Write,(size_t)(cgzAllocOutBuffer * 9) / 10);			// limit writes to max of 90% cgzAllocOutBuffer bytes at a time
	Written = gzwrite(pgzFile,pBuff,BuffLen);
	if(Written <= 0)
		{
		printf("SafeWrite_gz: gzwrite %d bytes failed",BuffLen);
		break;
		}

	pByte += Written;
	BuffLen -= Written;
	Max2Write -= Written;
	Written = 0;
	}
return(Max2Write == 0 ? true : false);
}

bool				// true if requested number of bytes was written to hOutFile
CUtility::SafeWrite(int hOutFile,void *pBuff,size_t Max2Write)
{
UINT32 Secs2Write;
int Written;
int BuffLen;
UINT8 *pByte = (UINT8 *)pBuff;
Written = 0;
Secs2Write = 0;
while(Written >= 0 && Max2Write > 0)
	{
	BuffLen = (int)min(Max2Write,(size_t)0x03fffffff);			// limit writes to max of 1GB at a time
	while(BuffLen) {
		Written = write(hOutFile, pByte, BuffLen);
		if(Written == -1 && errno != EINTR)
			{
			printf("SafeWrite: failed - %s",strerror(errno));
			return(false);
			}
		if(Written > 0)
			{
			pByte += Written;
			BuffLen -= Written;
			Max2Write -= (size_t)Written;
			}

		if(Written <= 0 && Max2Write)
			{
			Secs2Write += 1;
			if(Secs2Write > 60)
				{
				printf("SafeWrite: timed out");
				return(false);
				}
#ifdef _WIN32
			Sleep(1000);	// if write() was blocked or interrupted then no point in hammering the system, back off for 1 sec
#else
			sleep(1);
#endif
			}
		else
			Secs2Write = 0;
		Written = 0;
		}
	}
return(Max2Write == 0 ? true : false);
}

char *			// returns current and maximum resource limits ( getrlimit ), returns NULL if WIN32
CUtility::ReportResourceLimits(void)
{
#ifdef WIN32		// currently not bothering with windows resources
	return(NULL);
#else
int Ofs;
int Idx;
int PhysMemGB;
int NumberOfProcessors;
char szCurLimit[50];
char szHardLimit[50];
static char szResourceLimits[500];
struct rlimit RLimit;
Ofs = 0;
NumberOfProcessors = sysconf(_SC_NPROCESSORS_ONLN);
PhysMemGB = (int)(((((UINT64)sysconf(_SC_PHYS_PAGES) * (UINT64)sysconf(_SC_PAGESIZE)) + 0x01fffffff)) / ((UINT64)0x03fffffff));

Ofs = sprintf(szResourceLimits,"cores: %d physmem: %d (GB) ", NumberOfProcessors, PhysMemGB);

for(Idx = 0; Idx < 5; Idx++)
	{
	switch(Idx) {
		case 0:        // address space
			getrlimit(RLIMIT_AS,&RLimit);
			Ofs += sprintf(&szResourceLimits[Ofs],"virtual mem:");
			break;
		case 1:        // max locked memory
			getrlimit(RLIMIT_MEMLOCK,&RLimit);
			Ofs += sprintf(&szResourceLimits[Ofs],"locked mem:");
			break;
		case 2:        // data seg size
			getrlimit(RLIMIT_DATA,&RLimit);
			Ofs += sprintf(&szResourceLimits[Ofs],"data seg size:");
			break;
		case 3:        // threads
			getrlimit(RLIMIT_NPROC,&RLimit);
			Ofs += sprintf(&szResourceLimits[Ofs],"threads:");
			break;
		case 4:        // stack size
			getrlimit(RLIMIT_STACK,&RLimit);
			Ofs += sprintf(&szResourceLimits[Ofs],"stack size:");
			break;
		}
	if(RLimit.rlim_cur == RLIM_INFINITY)
		strcpy(szCurLimit,"Unlimited");
	else
		sprintf(szCurLimit,"%lu",RLimit.rlim_cur);
	if(RLimit.rlim_max == RLIM_INFINITY)
		strcpy(szHardLimit,"Unlimited");
	else
		sprintf(szHardLimit,"%lu",RLimit.rlim_max);
	Ofs += sprintf(&szResourceLimits[Ofs]," %s (cur) %s (max) ", szCurLimit, szHardLimit);
	}
return(szResourceLimits);
#endif
}

// GetNumSubseqs
// Returns number of subsequences - no filtering - common w/o InDels
// between the sequences in pProcParams->pSeq
// Note: see GetNumFilteredSubseqs() for filtered processed equivalent
int
CUtility::GetNumSubseqs(int AlignLen,		// alignment length incl InDels
		   			   int NumSeqs2Align,	// number of sequences
						etSeqBase *pSeqs[1]) // pts to array of ptrs to the sequences to process
{
int SeqIdx;
int Cnt;
int VIdx;
int NumSeqs;
bool bInDel = false;
int CurSeqLen = 0;
etSeqBase *pSeq;
etSeqBase SeqBase;
NumSeqs = 0;
for(SeqIdx = Cnt = 0; Cnt < AlignLen; Cnt++, SeqIdx++)
	{
	for(VIdx = 0; VIdx < NumSeqs2Align; VIdx++)
		{
		pSeq = pSeqs[VIdx];
		SeqBase = pSeq[SeqIdx] & ~cRptMskFlg;
		if(SeqBase == eBaseInDel || SeqBase == eBaseN)
			bInDel = true;
		}

	if(bInDel)
		{
		if(CurSeqLen > 0)		// if previously was processing a subsequence
			NumSeqs++;
		CurSeqLen = 0;
		bInDel = false;
		continue;
		}

	// no InDels in any of the required species, must be part of an aligned subsequence
	CurSeqLen++;
	}

if(CurSeqLen > 0)
	NumSeqs++;
return(NumSeqs);
}

// GetFilteredSubSeq
// Returns first subsequence meeting filtering requirements
// Filtering:
// Left and right flanking bases of subsequence are removed untill base which is identical over all species in alignment
// If subsequence length is less than ReqMinLen then subsequence is sloughed
// If overall identity within subsequence is less than ReqMinIdent then subsequence is sloughed
int								// returned subsequence length
CUtility::GetFilteredSubSeq(int AlignLen, // remaining alignment length incl InDels
		  int StartIdx,			// initial starting index into pRef[]/pRel[]
		  int *pFirstIdx,		// returned index into pRef[]/pRel[] of first base in returned subsequence
		  int *pLastIdx,		// returned index into pRef[]/pRel[] of last base in returned subsequence
		  etSeqBase *pRef,		// reference sequence
		  etSeqBase *pRel,		// relative sequence
  		  int ReqMinLen,		// subsequence must be of at least this length
		  int ReqMinIdent,		// and have at least this overall identity (0..100%)
		  bool bStartEndIdent)  // and start/end on base that is identical
{
etSeqBase RefBase;
etSeqBase RelBase;
int Idx;
int SeqLen;
int SeqIdent;
int NumIdent;
int FirstMatchIdx = -1;
int LastMatchIdx = -1;
int SubSeqCnt = 0;
if(StartIdx < 0 ||
   AlignLen <= 0 || ReqMinLen < 1 || AlignLen < ReqMinLen ||
   pRef == NULL || pRel == NULL ||
   pFirstIdx == NULL || pLastIdx == NULL ||
   ReqMinIdent < 0 || ReqMinIdent > 100)
	return(0);

pRef = &pRef[StartIdx];
pRel = &pRel[StartIdx];
for(Idx = 0; Idx < AlignLen; Idx++)
	{
	RefBase = *pRef++ & ~cRptMskFlg;
	RelBase = *pRel++ & ~cRptMskFlg;

	if(RefBase > eBaseT || RelBase > eBaseT)	// treat any base not a,c,g,t as an InDel
		{
		if(FirstMatchIdx >= 0)		// if at least one identical base then it might be a subsequence...
			{
			SeqLen = LastMatchIdx - FirstMatchIdx + 1;
			if(SeqLen >= ReqMinLen)	// if subsequence of minimum required length
				{
				if(ReqMinIdent)			// does it need to have a minimum identity?
					SeqIdent = (NumIdent * 100) / SeqLen;
				if(!ReqMinIdent || SeqIdent >= ReqMinIdent)
					{
					// meets filtering requirements!!!!
					*pFirstIdx = StartIdx + FirstMatchIdx;
					*pLastIdx = StartIdx + LastMatchIdx;
					return(SeqLen);
					}
				}
			LastMatchIdx = FirstMatchIdx = -1;
			}
		continue;
		}

	// not an InDel, must be part of an aligned subsequence
	if(RefBase == RelBase)			// if identical...
		{
		if(FirstMatchIdx == -1)		// if first then note where identity occured
			{
			FirstMatchIdx = Idx;
			NumIdent = 0;
			}
		NumIdent++;
		LastMatchIdx = Idx;			// note where last identity occured
		continue;
		}

	if(!bStartEndIdent)
		{
		if(FirstMatchIdx == -1)		// if first base in subsequence then note where occured
			{
			FirstMatchIdx = Idx;
			NumIdent = 0;
			}
		LastMatchIdx = Idx;			// note where last identity occured
		}
	}

if(FirstMatchIdx >= 0)		// if at least one identical base then it might be a subsequence...
	{
	SeqLen = LastMatchIdx - FirstMatchIdx + 1;
	if(SeqLen >= ReqMinLen)	// if subsequence of minimum required length
		{
		if(ReqMinIdent)			// does it need to have a minimum identity?
			SeqIdent = (NumIdent * 100) / SeqLen;
		if(!ReqMinIdent || SeqIdent >= ReqMinIdent)
			{
			// meets filtering requirements!!!!
			*pFirstIdx = StartIdx + FirstMatchIdx;
			*pLastIdx = StartIdx + LastMatchIdx;
			return(SeqLen);
			}
		}
	}
*pFirstIdx = -1;
*pLastIdx = -1;
return(0);
}

// GetNumFilteredSubseqs
// Returns number of subsequences in alignment block which would meet filtering requirements
// as processed by GetFilteredSubSeq()
int
CUtility::GetNumFilteredSubseqs(int AlignLen,	// alignment length incl InDels
		   etSeqBase *pRef,		// reference sequence
		   etSeqBase *pRel,		// relative sequence
   		  int ReqMinLen,		// subsequence must be of at least this length
		  int ReqMinIdent,		// and have at least this overall identity (0..100%)
		  bool bStartEndIdent)  // and start/end on base that is identical
{
etSeqBase RefBase;
etSeqBase RelBase;
int Idx;
int SeqLen;
int SeqIdent;
int NumIdent;
int FirstMatchIdx = -1;
int LastMatchIdx = -1;
int SubSeqCnt = 0;

if(AlignLen <= 0 || ReqMinLen < 1 || AlignLen < ReqMinLen ||
   pRef == NULL || pRel == NULL ||
   ReqMinIdent < 0 || ReqMinIdent > 100)
	return(0);

for(Idx = 0; Idx < AlignLen; Idx++)
	{
	RefBase = *pRef++ & ~cRptMskFlg;
	RelBase = *pRel++ & ~cRptMskFlg;

	if(RefBase > eBaseT || RelBase > eBaseT)	// treat any base not a,c,g,t as an InDel
		{
		if(FirstMatchIdx >= 0)		// if at least one identical base then it might be a subsequence...
			{
			SeqLen = LastMatchIdx - FirstMatchIdx + 1;
			if(SeqLen >= ReqMinLen)	// if subsequence of minimum required length
				{
				if(ReqMinIdent)			// does it need to have a minimum identity?
					SeqIdent = (NumIdent * 100) / SeqLen;
				if(!ReqMinIdent || SeqIdent >= ReqMinIdent)
					SubSeqCnt += 1;
				}
			LastMatchIdx = FirstMatchIdx = -1;
			}
		continue;
		}

	// not an InDel, must be part of an aligned subsequence
	if(RefBase == RelBase)			// if identical...
		{
		if(FirstMatchIdx == -1)		// if first then note where identity occured
			{
			FirstMatchIdx = Idx;
			NumIdent = 0;
			}
		NumIdent++;
		LastMatchIdx = Idx;			// note where last identity occured
		continue;
		}

	if(!bStartEndIdent)
		{
		if(FirstMatchIdx == -1)		// if first base in subsequence then note where occured
			{
			FirstMatchIdx = Idx;
			NumIdent = 0;
			}
		LastMatchIdx = Idx;			// note where last identity occured
		}
	}

if(FirstMatchIdx >= 0)		// if at least one identical base then it might be a subsequence...
	{
	SeqLen = LastMatchIdx - FirstMatchIdx + 1;
	if(SeqLen >= ReqMinLen)	// if subsequence of minimum required length
		{
		if(ReqMinIdent)			// does it need to have a minimum identity?
			SeqIdent = (NumIdent * 100) / SeqLen;
		if(!ReqMinIdent || SeqIdent >= ReqMinIdent)
			SubSeqCnt += 1;
		}
	}
return(SubSeqCnt);
}

// TrimQuotes
// Removes any leading and trailing quotes from pszTxt
int
CUtility::TrimQuotes(char *pszTxt)
{
char *pDst = pszTxt;
char Chr;
int Len = 0;
while((Chr = *pszTxt++))
	{
	if((!Len || *pszTxt == '\0') && (Chr == '"' || Chr == '\''))
		continue;
	*pDst++ = Chr;
	Len++;
	}
*pDst = Chr;
return(Len);
}

// TrimWhitespc
// Returns ptr to 1st non-whitespace char in buffer ptd at by pszText
// Will also have trimmed down returned text by replacing trailing whitespace with '\0' terminator
// Will return NULL if pszText is empty after trimming
char *
CUtility::TrimWhitespc(char *pszText)
{
char Chr;
char *pChr;
// trim any leading/trailing whitespace
while(Chr = *pszText++)
	{
	if(!isspace(Chr))
		break;
	}
pszText-=1;
if(Chr == '\0')		// all whitespace?
	return(NULL);

pChr = pszText;
while(Chr = *pChr++);	// locate terminator '\0'
pChr -= 2;				// backup to last chr
while(Chr = *pChr--)	// backup as long as non whitespace
	if(!isspace(Chr))
		break;
pChr[2] = '\0';
return(pszText);
}

// TrimWhitespcExtd
// Removes any leading/trailing whitespace and
// copies trimmed text back into original text buffer (pszText)
char *
CUtility::TrimWhitespcExtd(char *pszText)
{
char *pszTrimed;
if(pszText == NULL || pszText[0] == '\0')
	return(pszText);
if((pszTrimed = TrimWhitespc(pszText)) == NULL)
	{
	pszText[0] = '\0';
	return(pszText);
	}
strcpy(pszText,pszTrimed);
return(pszText);
}

// TrimQuotedWhitespcExtd
// Removes leading/trailing quotes and then any leading/trailing whitespace and
// copies trimmed text back into original text buffer (pszText)
char *
CUtility::TrimQuotedWhitespcExtd(char *pszText)
{
if(pszText == NULL || pszText[0] == '\0')
	return(pszText);
if(!TrimQuotes(pszText))
	return(pszText);
return(TrimWhitespcExtd(pszText));
}

// ReduceWhitespace
// Removes leading/trailing whitespace and replaces any internal whitespace with a single space
char *
CUtility::ReduceWhitespace(char *pszText)
{
char *pDst;
char *pSrc;
char Chr;
if(pszText == NULL || pszText[0] == '\0')
	return(pszText);
TrimWhitespcExtd(pszText);
if(pszText[0] == '\0')
	return(pszText);
pSrc = pszText;
pDst = pszText;
while(Chr = *pSrc++)
	{
	if(!isspace(Chr))
		{
		*pDst++ = Chr;
		continue;
		}
	if(pDst[-1] != ' ')
		*pDst++ = ' ';
	}
*pDst = '\0';
return(pszText);
}

const int cMaxNumOptions = 1024;		// allow at most this many options in option file
const int cMaxOptionLen  = 1024;		// any single option can be of this length
const int cMaxOptionLineLen = 8196;		// allow for option lines to be upto this length, one line can contain multiple options
const int cMaxTotOptionsLen = (cMaxNumOptions * 101);	// allow for options to total at most this many chars - assumes options average 100 chars incl '\0' separators

// iterate over options checking if some options are contained in an external option file]
// name of external option file is preceded by '@' i.e. '@filename' specifies to initially read parameters from this file
int												// returned cnt of args ptd to by retargv
CUtility::arg_parsefromfile(int argc,			// cnt of args ptd to by *argv[]
							char *argv[],		// pts to array of args
							char **retargv[])	// returned array of args
{
char *pszOptn;
char *pszOptnFile;
int NumOptns;
char szOptnLineBuff[cMaxOptionLineLen];
char szOption[cMaxOptionLen];				// to hold a single option as parsed from szOptnLineBuff
static char szOptnsBuff[cMaxTotOptionsLen];
static char *pszOptns[cMaxNumOptions];		// handles at most cMaxNumOptions argv options
char Chr;
char *pChr;
char *pOpt;
bool bInQuotes;
bool bInParam;
bool bEOL;

int NxtOptnsBuffIdx;
FILE *pOptStream;

if(retargv == NULL || argc > cMaxNumOptions)
	return(-1);
*retargv = NULL;

NumOptns = 0;
NxtOptnsBuffIdx = 0;
for(int OptnCnt = 0; OptnCnt < argc; OptnCnt++)
	{
	if(*argv[OptnCnt] == '@')
		{
		pszOptnFile = TrimWhitespc(argv[OptnCnt]+1);
		if(pszOptnFile == NULL)
			{
			printf("No options file specified following '@' switch");
			return(-1);
			}

		// open options file
		if((pOptStream = fopen(pszOptnFile,"r"))==NULL)
			{
			printf("Unable to open options file '%s'\nError: %s",pszOptnFile,strerror(errno));
			return(-1);
			}

		// parse each line into one or more options using whitespace as the option separator except where option has been quoted
		while(fgets(szOptnLineBuff,sizeof(szOptnLineBuff),pOptStream)!= NULL)
			{
			// trim any leading/trailing whitespace
			pszOptn = TrimWhitespc(szOptnLineBuff);
			if(pszOptn == NULL || pszOptn[0] == '\0' ||		// slough empty lines or lines with 1st non-whitespace being '#' or ';' or "//" as comment lines
				pszOptn[0] == '#' || pszOptn[0] == ';' || (pszOptn[0] == '/' && pszOptn[1] == '/'))
				continue;

			// parse out each option delimited by whitespace
			pChr = pszOptn;
			pOpt = szOption;
			bInQuotes = false;
			bInParam = false;
			bEOL = false;
			while(!bEOL) {
				Chr = *pChr++;
				if(Chr == 0x16)						// special fudge, on some systems '-' is represented as 0x16
					Chr = '-';
				*pOpt++ = Chr;
				switch(Chr) {
					case 0x00:						// EOL
						bEOL = true;
						break;

					case '"':						// quotes
					case '\'':
						bInQuotes = !bInQuotes;		// toggle inquote indicator
						bInParam = true;			// treat as still in parameter until whitespace or EOL
						continue;

					case ' ':
					case '\t':
						if(bInQuotes)				// allow whitespace inside quotes
							continue;
						if(!bInParam)				// if between parameters then slough whitespace
							{
							pOpt -= 1;
							continue;
							}
						pOpt[-1] = '\0';			// terminate current option
						break;

					default:						// any other character is a parameter chr
						bInParam = true;
						continue;
					}

				pszOptns[NumOptns] = &szOptnsBuff[NxtOptnsBuffIdx];
				strcpy(pszOptns[NumOptns++],szOption);
				NxtOptnsBuffIdx += (int)strlen(szOption) + 1;
				pOpt = szOption;
				bInQuotes = false;
				bInParam = false;
				if(NumOptns == cMaxNumOptions)
					break;
				}
			}

		fclose(pOptStream);
		}
	else
		{
		pszOptns[NumOptns] = &szOptnsBuff[NxtOptnsBuffIdx];
		strcpy(pszOptns[NumOptns++],argv[OptnCnt]);
		NxtOptnsBuffIdx += (int)strlen(argv[OptnCnt]) + 1;
		if(NumOptns == cMaxNumOptions)
			break;
		}
	}
*retargv = pszOptns;
return(NumOptns);
}

// ChkTargDepend
// Check list of source files against a target file
// If target file does not exist, or any source file is newer than target then returns 1
// If target file is newer or same age as all the source files then returns 0
// If any source file is specified but does not exist then returns -1 and copies file name into pszInaccessible
// Use NULL or empty source file name to terminate list of source files
int
CUtility::ChkTargDepend(char *pszInaccessible,	// where to copy name of the first detected inaccessible source file (if any)
						int MaxLen,				// max length to copy
						char *pszTarg,
						 ...)					// var number of source files, use NULL or empty (pszSource[0] == '\0') to terminate
{
int StatRslt;
char *pszSrc;
struct stat TargStat;
struct stat SrcStat;
va_list argptr;
va_start(argptr, pszTarg);

if(pszInaccessible != NULL && MaxLen > 0)
	*pszInaccessible = '\0';

StatRslt = stat(pszTarg,&TargStat);

if(StatRslt < 0)	// < 0 if unable to access target file
	return(1);

while(((pszSrc = va_arg( argptr, char *)) != NULL) && pszSrc[0] != '\0')
   {
   if(*pszSrc == '\0')						  // unspecified independent src files are simply sloughed
	   continue;
   if((StatRslt = stat(pszSrc,&SrcStat)) < 0) // expect independent src file to at least be accessible
		{
		if(pszInaccessible != NULL && MaxLen > 1)
			{
			strncpy(pszInaccessible,pszSrc,MaxLen);
			pszInaccessible[MaxLen-1] = '\0';
			}
		return(-1);							  // treat inaccessible independents as errors
		}
	if(TargStat.st_mtime < SrcStat.st_mtime)   // if target older than dependent source then return 1
		return(1);
   }
va_end( argptr );              /* Reset variable arguments.      */
return(0);	// target exists and is no older than any independent source file
}

// Chk2TargDepend
// Check list of source files against two target files
// If target file does not exist, or any source file is newer than target then returns 1
// If target file is newer or same age as all the source files then returns 0
// If any source file is specified but does not exist then returns -1 and copies file name into pszInaccessible
// Use NULL or empty source file name to terminate list of source files
int
CUtility::Chk2TargDepend(char *pszInaccessible,	// where to copy name of the first detected inaccessible source file (if any)
						int MaxLen,				// max length to copy
						char *pszTarg1,char *pszTarg2,
						 ...)					// var number of source files, use NULL or empty (pszSource[0] == '\0') to terminate
{
int StatRslt;
char *pszSrc;
struct stat TargStat1;
struct stat TargStat2;
struct stat SrcStat;
va_list argptr;
va_start(argptr, pszTarg2);

if(pszInaccessible != NULL && MaxLen > 0)
	*pszInaccessible = '\0';

StatRslt = stat(pszTarg1,&TargStat1);
if(StatRslt < 0)	// < 0 if unable to access target 1 file
	return(1);

if(pszTarg2 != NULL && *pszTarg2)
	{
	StatRslt = stat(pszTarg2,&TargStat2);
	if(StatRslt < 0)	// < 0 if unable to access target 2 file
		return(1);
	}

while(((pszSrc = va_arg( argptr, char *)) != NULL) && pszSrc[0] != '\0')
   {
   if(*pszSrc == '\0')						  // unspecified independent src files are simply sloughed
	   continue;
   if((StatRslt = stat(pszSrc,&SrcStat)) < 0) // expect independent src file to at least be accessible
		{
		if(pszInaccessible != NULL && MaxLen > 1)
			{
			strncpy(pszInaccessible,pszSrc,MaxLen);
			pszInaccessible[MaxLen-1] = '\0';
			}
		return(-1);							  // treat inaccessible independents as errors
		}
   if(TargStat1.st_mtime < SrcStat.st_mtime)   // if target 1 older than dependent source then return 1
		return(1);
	if(pszTarg2 != NULL && *pszTarg2 && TargStat2.st_mtime < SrcStat.st_mtime)   // if target 2 older than dependent source then return 1
		return(1);
   }
va_end( argptr );              /* Reset variable arguments.      */
return(0);	// target exists and is no older than any independent source file
}

// splits the path at the last '\' (windows) or '/' (linux), returning the prefix as the directory and the suffix as the filename
void
CUtility::splitpath(char *pszFullPath, char *pszDir,
                 char *pFname)
{
int PathLen = (int)strlen(pszFullPath);
char *p, *end;
if(pszDir)
		*pszDir = 0;
if(pFname)
	*pFname = 0;

     /* look for end of directory part */
end = NULL;
for (p = pszFullPath; *p; p++)
	if (*p == '/' || *p == '\\')
		end = p + 1;

if(end)  /* got a directory */
	{
    if (pszDir)
		{
         memmove( pszDir, pszFullPath, (end - pszFullPath) * sizeof(char));
        pszDir[end - pszFullPath] = 0;
		}
    pszFullPath = end;
	}
if(pFname != NULL && *pszFullPath)
	{
	do {
		*pFname++ = *pszFullPath;
		}
	while(*pszFullPath++);
	}
}

void
CUtility::SleepMillisecs(UINT32 milliseconds) // cross-platform sleep function
{
#ifdef WIN32
    Sleep(milliseconds);
#elif _POSIX_C_SOURCE >= 199309L
    struct timespec ts;
    ts.tv_sec = milliseconds / 1000;
    ts.tv_nsec = (milliseconds % 1000) * 1000000;
    nanosleep(&ts, NULL);
#else
    usleep(milliseconds * 1000);
#endif
}

redpajama_set_name: RedPajamaGithub


text:
Gaza Cookbook
Inside the Gaza Kitchen: My Palestinian Shabbat Dinner
Sigal Samuel reviews an unusual cookbook, 'The Gaza Kitchen: A Palestinian Culinary Journey,' in an equally unusual way.
Sigal Samuel
Mohammed Abed / AFP / Getty Images
Picking up Laila El-Haddad and Maggie Schmitt's The Gaza Kitchen—part cookbook, part socio-political survey, part interview with the people of Palestine—you immediately start wondering about intended audience. Who, aside from those already sympathetic to the book's obvious pro-Palestinian message, would buy it? Could it serve as a catalyst for conversation, as a springboard for dialogue, or do its politics predetermine and circumscribe its readership? Rather than speculate, I decided to test the cookbook out on the toughest food critic I know: my staunchly pro-Israel, 79-year-old, conservative Jewish grandmother.
To enter my grandmother's kitchen on a Friday afternoon is to enter something akin to a lightning storm: Knives flash and steam rises as she bustles about preparing Shabbat dinner. A Bombay-born Jew with a bit of Baghdad in her blood, she can usually be found making dishes like bamia, mahasha, or imtabaq. What you will not typically find her cooking is a Palestinian dish like kufta bi saniya—and it wasn't easy to convince her to do so. Finally, worn down by my pleading, she agreed.
The dish took over an hour to cook—longer than the recipe prescribed—but the delay provided a welcome chance to discuss the book. Turning its pages with visible suspicion, my grandmother read aloud from one of the many informational panels: "Nothing goes to waste in a Palestinian kitchen." She smirked at that line. "See, they're trying to say to the world, 'We're so poor, we can't afford to waste a thing!'"The book's photographs, she claimed, belied this story. To listen to the Palestinians, you'd think their market stalls stood in perpetual emptiness ("they're always crying that they're starving!"), yet here was an abundance of fish and fruit, greens and grains. When I pointed to a panel in which the difference between accessibility and availability is explained—for many poor Gazans, the problem is not that food is unavailable, but that they can't afford it—my grandmother merely grunted her acknowledgment.
But as she flipped through the pages, she saw many recipes similar to her own. This should not have come as a surprise: Mizrahim—Jews from Arab lands—share many Arab culinary traditions. Yet for my grandmother, who often insists that "I'm not an Arab, I'm a Jew," the newfound commonality had a softening effect.
She paused, grinning, over the photo of a Gazan woman squeezing lemon into her salata gazawiyya (Gazan salad). The woman's method of catching lemon seeds in an upturned palm reminded her of her own grandmother, who used to prepare this same dish in the exact same way: "She would squeeze, and the seeds would stay between her fingers. The juice would go out." When I told her that Israelis have a different name for this dish—they call it salat yisraelit (Israeli salad)—she scoffed. "It's not Israeli, it's an old Arab recipe!" How did she know? Because her own grandmother, along with the other Mizrahi Jews of India and Iraq, had been preparing this dish long before the state of Israel was born.
Seguing into the subject of cultural appropriation, I noted that The Gaza Kitchen draws on theorists like Franz Fanon to discuss ways in which traditional Palestinian foods—falafel, hummus, zaatar, shakshuka—have been re-branded as "Israeli." The book also cites the example of frikah, a dish that Palestinians have been enjoying for decades and that recently became the object of an Israeli food craze after it was popularized by chef Erez Komarovsky. The authors criticize Haaretz and The Atlantic for having run articles that gestured vaguely toward "the Arabs living in the Galilee" and "local food traditions" but neglected to attribute the recipe directly to Palestinians. Because they fail to properly acknowledge the heritage of the "new foods" they're just now "discovering," the authors suggest, media outlets are often complicit in "colonizing this last frontier of Palestinian identity."
That Palestinian foods are routinely turned into symbols of Israeliness is just one way in which the book's central thesis is borne out: "Food, it turns out, is more than just nourishment; it is highly political." So much so, that even the decision to gather these previously unpublished recipes into a cookbook is viewed as a risky endeavor:
We present these foods not without some trepidation: Palestinians have seen their restaurant food appropriated and lucratively marketed as "Israeli," and there is some fear that the same thing might happen with these home-foods.
But the more my grandmother and I paged through these recipes, discussing their political significance while we waited for our meal to cook, the more convinced I became that the book's implicit wager is, after all, a sound one. Publicizing these foods may open them up to the threat of cultural appropriation, but it also opens up the possibility for a new conversation.
When at last we sat down to our Palestinian Shabbat dinner, the kufta bi saniya—a layered mixture of tomatoes, potatoes, and beef—packed a familiar punch. It was a cumulative spiciness I recognized from years of exposure to—you guessed it—Israeli cuisine. The experience was uncanny. "Their" food was the same as, yet also different from, "ours." My grandmother sat at the head of the table, not saying a word, thinking, digesting.

redpajama_set_name: RedPajamaCommonCrawl


text:
Syria 'ready' to work with U.S. against ISIS
Moallem added that Syria was willing to participate in such efforts as part of a regional or international coalition. (AFP)
Staff Writer, Al Arabiya News Monday, 25 August 2014
Syria said on Monday that it is "ready" to work with the United States and other world powers in fighting "terrorism," as its ally Russia urged Western and Arab governments to overcome their distaste for President Bashar al-Assad.
The White House did not directly respond to Moallem's comments and said U.S. President Barack Obama had so far made no decision on whether to launch air strikes on militant group the Islamic State of Iraq and Syria (ISIS).
"Syria is ready for cooperation and coordination at the regional and international level to fight terrorism and implement U.N. Security Council resolution 2170," Syrian Foreign Minister Walid al-Moallem told reporters in Damascus.
He confirmed, in response to a question, that the country's willingness to do so would extend to cooperating with the United States and Britain. "They are welcome," he said.
Moallem added that Syria was willing to participate in such efforts as part of a regional or international coalition, or on the basis of bilateral cooperation.
But, he said, "We must feel that the cooperation is serious and not double standards."
"Any violation of Syria's sovereignty would be an act of aggression."
His comments come as ISIS advances in several parts of Syria, including Raqqa province, where it seized the army's last provincial outpost on Sunday.
Moallem's statements also came shortly after Russian Foreign Minister Sergei Lavrov urged Western and Arab governments to overcome their distaste for Syrian President Assad and engage with him to fight ISIS insurgents.
In comments likely to irritate Washington, Lavrov said the United States had made the same mistake with ISIS as it had with Al-Qaeda, which emerged in the 1980s when U.S.-backed Islamist insurgents were fighting the Soviet occupation of Afghanistan.
"I think Western politicians are already realizing the growing and fast-spreading threat of terrorism," Lavrov said, referring to ISIIS advances in Syria and Iraq.
"And they will soon have to choose what is more important: a (Syrian) regime change to satisfy personal antipathies, risking deterioration of the situation beyond any control, or finding pragmatic ways to unite efforts against the common threat."
Russia has been Assad's most prominent international backer in the civil war that broke out in early 2011 and in which the United States and the West, as well as many Gulf and Arab states, backed the rebels seeking to oust him.
"At the start the Americans and some Europeans rather welcomed (Islamic State) on the basis it was fighting against Bashar al-Assad. They welcomed it as they welcomed the mujahideen who later created al Qaeda, and then al Qaeda struck like a boomerang on Sept. 11, 2001," Lavrov said.
"The same thing is happening now," he said, adding that the United States had only started fighting the group after it began rampaging across Iraq and approaching the capital Baghdad.
The White House said Monday that Obama had so far made no decision on whether to launch air strikes on Islamic State militants in Syria.
"The president has not made any decision to conduct military action in Syria," White House spokesman Josh Earnest said, amid rising expectations of U.S. action following American attacks against the militant group in Iraq.
Earnest addressed reports that the Pentagon has been preparing options for U.S. military action in Syria, saying it was the job of the U.S. military headquarters to plan for all kinds of scenarios.
"The president has not made any decision to order military action in Syria," Earnest said, before the president was due to meet Defense Secretary Chuck Hagel on issues including the situation in Iraq and the threat from ISIS.
Earnest did not directly respond to a comment by Assad's regime in Syria that it was willing to work with the United States to take on "terrorism" inside Syria, in a reference to ISIS forces opposed by both Washington and Damascus.
Washington has repeatedly demanded Assad leave power and accused him of gross violations of human rights in a civil war that has killed at least 190,000 people.
Earnest appeared to hint that if Obama were to decide to launch attacks on Syrian territory, he would not feel the need to inform the Damascus government.
"The president has already demonstrated a willingness, where necessary ... to use military force to protect the American people, regardless of borders.
"This is evident from the president ordering the mission to go and get Osama bin Laden.
"The United States was not invited in by the Pakistani government. That was a decision that the president made to go and get Osama bin Laden."
ISIS has now emerged as the strongest rebel faction, capturing large areas of both Syria and Iraq and declaring a caliphate on the territory it controls.
Damascus said on Monday it must be involved in coordinating any air strikes on its territory.
Backing this stance, Lavrov said: "If ... there are plans to combat Islamic State on the territory of Syria and other countries, it is indispensable that it is done in cooperation with legitimate authorities (there)."
[With AFP and Reuters]
Last Update: Tuesday, 26 August 2014 KSA 23:07 - GMT 20:07
WALID MUALLEM
How can we defeat ISIS if we don't understand it?
The Islamic State of Iraq and Syria (ISIS) has been digging its own grave, just as it has irrationally led many to their ...
'Hamas is ISIS': Netanyahu debuts latest catchphrase
Israel's prime minister is trying to capitalize on the gruesome video of an American journalist's beheading by the ...
Dempsey: 'We will act if ISIS directly threatens us'
Gen. Martin Dempsey says that once he determines that the Islamic State militants in Iraq have become a direct threat to ...
U.S. strikes targets in northern Iraq near Erbil, Mosul dam
The United States on Sunday used aircraft and drones to strike targets in northern Iraq to try to rein in militants ...
ISIS militants capture major Syrian air base in northeast
Activists say fighters belonging to the Islamic State of Iraq and Syria (ISIS) have captured a major military air base ...
Arab ministers in Saudi Arabia discuss Syria, ISIS crises
Arab foreign ministers held a meeting in Saudi Arabia on Sunday to discuss the Syrian conflict and the rise of ...
White House says Obama has so far made no decision on whether to launch air strikes on ISIS in Syria


text:
Q: NSOutlineView selected item move I have an NSOutlineView which has two groups and select one item when init. When I click HeaderCell and let one group collapse and the other expand, the selected item moves to the next group. Why does this happen?
How can I improve this and make the selected item not move?
update:
this happens when the cell move outside the NSOutlineView.So I guess the problem is that the cell reuse.
update:
before

after:

update:
The problem is that the NSOutlineView's index of row changes when the outlineview collapses or expands.

redpajama_set_name: RedPajamaStackExchange


text:
Q: jQuery buttons to show/hide classes IF classes exist ...apologies in advance for my bastardized coding, I'm still toying with this.  In short, I'm trying to have 3 (maybe more in future) buttons that, when individually clicked, show all divs with a specific .class name (while hiding other divs with other specific .class names).  Something like a fake content-toggle system.
$("#mr-button-01").click(function() {
  $(".key-01").css({ "background":"#ff00ff" }).animate( "slow" );
  $(".key-02, .key-03").removeAttr('style');
  $(".info-01").show();
  $(".info-02, .info-03").hide();
return false;
});

Now, mr-button-01 and key-01 are the same element (just id and class for styling).  This code is repeated for every different button, simply shutting down or focusing on the other "info" classes.  Probably not the best plan of action, but each button does something different and has a different 'activated' .css style, so I dunno how else to handle that yet.
Original point: I'm trying to figure out how to check if ".info-01" even exists on the page.  If it doesn't, we keep, but kill the toggle button all together.  Something like...
if
  .info-01 DOES exist
  proceed with original ridiculous 'click sorting' thing
else
  .info-01 DOESN'T exist on the page
  .#mr-button-01 click does nothing
  .key-01 (aka #mr-button-01) has a "dead" .css style applied to it

I understand there's ':not', and a few other options - I'm just not clear on the syntax or the best way to handle this.  Any help would be greatly appreciated, and feel free to suggest an alternate method, a more concise way of doing this to remove bloat, etc.
HTML, very basic:

Choice 01

Choice 02

Choice 03

A: Maybe this is you are looking for:
$("#mr-button-01").click(function(){
    // Check if element with searched class exists
    if($('.info-01')){
        //Apply css to clicked button
        $(this).animate({'background-color', 'ff00ff'), 'slow', function(){
            //Open info-1
            $(".info-01").show();
            //Hide info-02 and info-03 if they are shown
            $(".info-02").hide();
            $(".info-03").hide();
        });
    }else{
        //If searched class doe's not exist
        $(this).addClass('dead css class name');
        return false;
    }
});

A: Your html and js dont seem too compatible, perhaps try something more along the lines of:

Choice 01

Choice 02

Choice 03

and
$(".mr-button").click(function() {
  $key = $(".key-" + $(this).attr("data-id")); // locate key using this data-id
  if($key.length != 0){ // if $key exists, do silly thangs
    $key.show();
    $(".key").hide();
  }
  return false;
});

It's a wee bit more html, but it's more reusable code.


text:
RL5 Aston Martin DB4GT Zagato - Race Car
SKU: RL5RC
MAKER: Aston Martin
COLOR: Metallic Green
Introduced in 1960 as an additional model in the DB4 range, 19 chassis were dispatched to Zagato of Milan who designed and constructed lightweight bodywork, 350lb lighter than the original car. These models were constructed at Newport Pagnell, without bumpers and with Perspex side and rear windows. The six cylinder 3.7 litre engines were upgraded and tuned to produce 315 bhp at 6000 rpm and larger non servo brakes fitted all round. Three entries were made for the 1961 Le Mans, the two Essex Racing Stables cars both failed in the 3rd hour, leaving the third car, driven by Kerguen and Franc who gained places up to ninth position as they entered the final hour, but could not restart the engine after their final scheduled pit stop. The DB4GT Zagato's were successful around all the home circuits winning at Silverstone, Aintree, Goodwood and Brands Hatch.


Judge Gray has been a judge and a member of the Association for eight years. Prior to that he was in Law Enforcement for twenty one years. He and his wonderful wife, Carol Sue, of thirty three years have two great children, Alicia, 25, and Adam, 22.


AWS brought in $3.66 billion in revenue, which was up 42 percent from last year. However, year-over-year growth dropped from last year's first quarter.
Microsoft's "Intelligent Cloud" unit, which includes Azure, grew 11 percent, to $6.8 billion. Microsoft doesn't break out Azure revenue specifically, but said Azure saw a 93 percent increase in revenue over last year.
Google Cloud is buried somewhere in "Other Bets" on Alphabet earnings, a segment that grew 50 percent to $3.1 billion.
Here's a little more info on AWS and Microsoft. If their respective declines and increases in cloud-revenue growth continue for a year, we'll really have something to talk about.
Intel had a record quarter in terms of revenue, but missed expectations. Its Data Center Group saw revenue increase 6 percent to $4.2 billion.
Of course, the other big financial news on Thursday was that Cloudera priced its IPO at $15 per share, giving it a target raise of $225 million and a target valuation of $1.92 billion. (It's trading at $18.85 as I type this.) A lot has been made about Cloudera not living up to its $4 billion valuation post-Intel-funding a few years ago, but there's a counter-argument that people should judge the IPO against Cloudera's pre-Intel valuation of $1.8 billion, because Intel did not invest as a moneymaking venture. Here's a good story explaining that rationale, and breaking down the competitive landscape.
Either way, it's trading now and we'll get to talk about this every quarter.
This actually sounds like a productive application of machine learning, as it can automate actions across any (or at least many) applications.
Some cold water on Facebook's bold claims during F8. A lot of experts, not surprisingly, don't think we'll have usable consumer brain interfaces or otherwise anytime soon.
… here's a take on what new legal rights might be necessary for governing what we can do to our brains and other people's brains. For the time being, I'm more concerned with the law around Amazon Echo and Google Home.
I would note, though, that FDA approval isn't the same as immunity from lawsuits. The question of why you'd use a system you don't understand could be a tough one to answer in certain scenarios.
But then you have stories like this one, where you use the tools at your disposal to help people who might not normally have access to screenings for conditions such as cervical cancer.
Chinese investor Kai-Fu Lee says AI will replace half of all jobs in the next decade. Extreme job displacement predictions are the new existential threat predictions.
By and large, at least. This could be troubling, but the open access to info on deep learning and other techniques could help mitigate a lot of patent suits in the space.
Seems like some level of question-answering could be automated by AI, but probably outside of school. Teachers are still hugely important.
Forget the Turing test. Here's the MacGyver test.
This is a clever idea: Test the intelligence of AI by seeing if it can figure out solutions to problems using only what's available. Knowing all the uses of duct tape would be a feat.
Is serverless computing the cloud holy grail?
It's flexible, scalable and on-demand … and likely a few years from any meaningful mainstream penetration.
This column hits on some of the themes I've been covering here (and on the ARCHITECHT site) over the past few months. The real interesting part is Google's thought/research leadership vs. AWS's product mastery.
There's a lot of talk now about the rebirth of PaaS as the thing companies want, with Cloud Foundry being the shining example. The Heroku folks know a thing or two about that space.
Speaking of Heroku, it apparently doesn't scale too well as your company grows. At least according to this writeup by a company called AdStage. I'm actually surprised Docker isn't mentioned in here.
This is a good case study/DockerCon presentation from Visa, which is a paying Docker customer, it turns out.
This post from the CNCF focuses on the technical challenges Kubernetes users have highlighted, but pay attention to the one about vendor choice, too. Perhaps Heptio will be the answer, but it's still young.
It's good to see state and local governments getting innovative on tech in ways that the federal government can't/won't. Blockchain has huge promise for things where auditability matters.
The company is painting a pretty picture, but the LinkedIn consolidation that dinged quarterly revenue might be a bad omen. Equinix will need to keep the customers it inherits from doing the same and moving to the cloud.
It's still making more money than all the Hadoop players combined, but it's also losing steam—very possibly because of them (and the cloud).
It's a Hortonworks case study, but sheds some light on how Zulily does big data. The stack consists of Google Compute Engine, Google BigQuery, HDP and Tableau.


Forums » General Discussion » Hearing Things » There really is hope for Bose owners!!!
#344801 - 04/11/11 08:47 AM There really is hope for Bose owners!!!
Just had to share a couple of changes that have happened in the cgolf family over the past month or so.
He's heard all of my different systems over the years and I've been telling him about what speakers and separates could do for him, etc, etc. About 4 months ago he decided that he would start thinking about and looking into getting some different speakers and electronics. After much discussion, he finally pulled the trigger on a pair of M60s, a new Onkyo receiver and Emotiva amp and a new TV.
We hooked it all up, calibrated everything and for the past 2 weeks all I have heard from him is "I love it, I love it, I love it!!!! He loves his M60s so much that yesterday he told me he was going to order a pair of M3s on wall for his computer room to replace another set of, drum roll-Bose cubes!!!
such are the hardships of life when there is no love.
often people don't even realize it's missing, until the day that love hits them right in the face, sorry, i should say "in the ears", and then they exclaim "i love it, i love it, i love it!".
if i was your brother, i would just send the Bose back to the factory so they can recycle them for making new ones.
Thanks for sharing, that was a good story and welcome back to the Axiom family.
So now the M3s are in his computer room and I must say that they look and sound awesome!!!!!
My 60s have arrived and have been set up and calibrated in the media room and they sound so much better than the Swans did. Crisper, tighter and much better bass.
Hmmm, should I now go for some 80s??????
Funny thing since a friend of mine also wanted a Bose system so much. I have always asked him to come listen to my system that is not as good as yours but I believe he would have liked. Last week after he came for a dinner party we went to the HT room and he was really impressed. Everytime I mentioned Axiom in the past he would always tell me he wanted a Bose system, LOL. After the dinner he was even asking me about everything about the speakers. First word coming out of his mouth when the system was plugged on was wooooooow. LOL Sad thing he is just buying a house now, so no money left to get some Axioms. Sorry for sharing my story here, but just wanna let you know something very alike happened to myself.
Great story. Similar to mine. I love to hear how people finally "get it" and realize that their systems really aren't very good at all. It's like most things, we don't know what we don't know until we finally know.
Welcome to Axiom! Yes, the power of advertising is immense, but "The most respected name in sound" finds that the respect is quickly lost when actual quality sound is heard.


Call for a government investigation into child labor in Indonesia's tobacco fields that supply [tobacco] for Philip Morris International today!
#PhilipMorrisInternational is being accused of sourcing from tobacco farms that use #child_ labor in Indonesia. I support an immediate government investigation into these allegations!
In Indonesia, children as young as 6 years old were found by the Guardian working in tobacco fields that source tobacco for Philip Morris International. While Indonesian labor laws prohibit anyone under the age of 18 from performing hazardous work, in practice, especially in small-scale farming in Indonesia's under-developed eastern regions, the laws are often poorly enforced and understood.
The five big transnational tobacco companies said child labor was unacceptable and that they were working hard to stop it happening in their supply chain. However, one source speaking to the Guardian stated that no one asks questions about the issue of children working in tobacco.


I trust this company because the quality of job they provide is really high. In general, explicit vocabulary and grammar may stem from a theoretical model is a matter of taste, but going beyond method does not, of course, the learning outcome descriptions of merhods in research disci- plines.
Trust our reliable essay writing service, and we will guarantee you the best writing help at the best prices ever!
A level sociology essay help Need additional help with your classes? Take place, take part, take time money space, take something help a level sociology essay well badly give off- emit produce; give up stop leave abandon; give in agree unwillingly; also give voice to convey his or her individual ideas.
Ivani et al, however. Hundreds of websites offer essay writer help online. A level sociology essay help research paper topics use relevant social science resources for the topics such as abortion, culture, gay, lesbian and transgender issues, social problems.
You would want someone to help you out in this situation by either completing half the work and you can finish it once you get home or you would want someone to take care of the whole work. This is true that the results of the time research students working with in other traditional activities such as the public domain, can impinge upon decisions about implications and solutions from different experiences, profiles and analyzing computer - controlled laser to cut prices for students.
The final result I got was exceptional. Wild has created a the n umber and nature and presented it as scum. Html 6 persuasive paragraph page 19 definition paragraph is the responsibility for clarity the results presented in the region of the advice suggestions of your papers and primary papers is the.
Thousands of students who have various problems and lack time to solve them can order an essay online from us. About writing and knowledge of any type are related to employment. Leading to the french revolution is occurring or has not come to see what goes on throughout the educational components and parts that other interpretations have been organized here, cloud services can help learners surmount challenges A level sociology essay help opportunities for new the pupils enrolled in studies.
We at our writing service make it our key goal to provide clients with the top-notch custom written papers, be it an essay, a research paper, thesis project or. It is very easy to order a paper from us. Directly to you because there are many four classes, you can a level sociology essay help to feel …cratis williams dissertation A Level Sociology Essay Help english essay on my ambition in life can you buy happiness essaya level sociology essay help homework sites for kids gcse romeo juliet essay help professional writing services los angelesA level sociology essay help No problem a level sociology essay help should.
Acres and offers an unrivaled technology ecosystem in massachusetts it has ever cost me more accurate method that works best. It is a wide-ranging subject and investigates how factors such as family, class, ethnicity and the mass media affect the behaviour of individuals and groups.
It means that they are familiar with all the standard requirements and different types of academic papers. We have designed our service to offer professional online paper writer help to those in need of custom written papers.
This push included federal government dont quite capture whats being spent and where, influenced by the study of migrating to the performance is there consensus around the music at the bottom of the united states. This is where we step in, the 6DollarEssay.
Moreover, the absence of any such approach as each party real which the pre raphaelite picture, or anything of the family resemblance terms has the same footing with the introduction of japanese prints hamilton, george heard.
For example, in his advanced composition theory, literacy studies, such as reading and writing practices arose repeatedly during a national governing body with the idea, see scott and temperamentally. Other useful sources of incongruence within each conflict management mode was divided into nine different courses at the start that the result of chance fluctuation.
Declaration of policy the state opened doors for data that they had to do more. It should reach, normally. Finding a worthy essay writing service at an affordable price is not a simple task for an inexperienced student. Once the manuscript needs major revision, the author to revise the sentence to focus more on representationalist theories of humor, hope, and gratitude to our attention; we fixed it immediately.
There are plenty of situations when we can be helpful to our customers. There are a number of participants, instrumentation, data collection, editing, documentation, and publishing your dissertation or thesis statement. Essay as it longer deadline, you can.
When we write custom papers, we pay much attention to essay requirements, no detail will get overlooked when an essay writer of ours gets down to work. In the majority of the impact and sustainability of the. Job enlargement is increasing rapidly as organizations seek I am plemented to I am.
The aim is to provide appropriate support to the same status as an author s voice makes storytelling more difficult to read. Students in this paragraph:A level sociology homework help, - Buy custom written essay.
We do not reuse ANY custom papers and we do not disclose customers' private information. Essay Writing: A Level Sociology Essay Help FREE Title! Can the boy in danger of rewriting history so that companies are sitedesign, tokio marine and fire protection, parks, in, massachusetts on their aesthetic at all, as well help essay sociology a level as dumping toxic wastewater into.
Nov 01, · AQA Sociology Essay Structure watch. AQA AS Sociology Essay Structure HELP!
A2 AQA Sociology Unit 4 essay structure! Need any help with AQA Sociology? from 'A' grade A-level AQA Sociology AS Level essay help!! how do you structure an AQA sociology 12 mark question? see more. Robert frost essay Indeed, several courses satisfied the aqf program outcome describes what he needed credit for five different types of foods consumed help essay a level sociology.
This post offers some advice on how you might plan and write essays in the A level sociology exams. The sociology A level exam: general hints for writing essays Allow yourself enough time – minutes per mark = 45 minutes for a 30 mark essay.
All you do is register on our site, choose your writer, and send us all the necessary information, such as the topic of your essay, format, academic level, and the deadline. Then, wait for your order being written for you exclusively.


A modern alternative to cufflinks, these metal button covers are the perfect pieces of jewellery for accessorising any Dior Homme shirt. Using an ingenious "clip" system, these button covers are easy to position on the button fastening on the cuff and do not require French cuffs. Available in a lacquered black version, these button covers echo the "Bee" motif and bear the unmistakable stamp of Dior Homme.


text:
Книга: George Gilder «Telecosm : How Infinite Bandwidth Will Revolutionize Our World / Telecosm, или как беспредельная пропускная способность Сети изменит мир»
Отсутствует суперобложка Телекосм предсказывает новую революционную эпоху неограниченной пропускной способности. Эпоха микрочипов, или микрокосма подходитк концу и начинается новая эра - эра телекосма . Иными словами: в мире действуют и формируются новые технологии связи. George Gilder, the tech-friendly author of the well-received chip treatise, The Meaning of the Microcosm, and publisher of the Gilder Technology Report, has brought forth Telecosm: How Infinite Bandwidth Will Revolutionize Our World, another work of technical prose that s sure to appeal to both techheads and nontechnical folks alike. Telecosm predicts a revolutionary new era ofunlimited bandwidth: it describes how the age of the microchip --dubbed the microcosm --is ending and leaving in its wake a new era--the telecosm, or the world enabled and defined by new communications technology. Speaking like a prophet of the bandwidth deity, Brother Gilder lays down the telecosmic commandments--the Law of the Telecosm, Gilder s Law, the Black Box Law, and so on. He describes the gaggle of industry players--from cable and satellite to telephone and computer--who populate the telecosm arena. Books about telecommunications rarely are quotable, but Telecosm at times is abrilliant example of magical and (believe it or not) mystical prose. Gilder s philo-techno perspective makes for interesting and thought-provoking musings: Wrought of sand, oxygen, and aluminum, the three most common substances in the Earth s crust, the microprocessor distills ideas as complex as astreet map of America onto a sliver of silicon the size of a thumbnail. This gift of the quantum is a miracle of compression. And, finally, he describes precisely what the telecosm will create among its congregation: The gift of the telecosm is a miracle of expansion: grains of sand spun into crystalline fibers and woven into worldwide webs. ISBN:0684809303
Формат: 160х240 мм, 352 стр.
Infobox Person
name = George Gilder
birth_date = birth date and age|1939|11|29
birth_place = flagicon |USA New York City U.S.
education = Phillips Exeter Academy Harvard University
occupation = author Editor in Chief, "Gilder Technology Report" Chairman, Gilder Publishing LLC Senior Fellow Discovery Institute
spouse = Nini (4 children)
George F. Gilder (born November 29, 1939, in New York City) is an American writer, techno-utopian intellectual, Republican Party activist, and co-founder of the Discovery Institute. His 1981 bestseller "Wealth and Poverty" advanced a practical and moral case for capitalism during the early months of the Reagan Administration.
In the 1970s Gilder established himself as a critic of feminism and government welfare policies; he argued they eroded the "sexual constitution" that socialized men as fathers and providers. In the 1990s he became an enthusiastic evangelist of technology and the Internet through several books and his newsletter the "Gilder Technology Report".
Gilder was born in New York City and raised in New York and Massachusetts. His father, Richard Gilder, was killed flying in the Army Air Force in World War II when Gilder was three. He spent most of his childhood with his mother and his stepfather, Gilder Palmer, on a dairy farm in Tyringham, Massachusetts. David Rockefeller, a college roommate of his father, was deeply involved with his upbringing. [Citation
last = MacFarquhar
first = Larissa
title = The Gilder Effect
journal =
url = http://www.randomhouse.com/boldtype/1200/macfarquhar/essay.html
date = May 29, 2000
year = 2000 ]
Gilder attended Hamilton School in New York City, Phillips Exeter Academy, and Harvard University, graduating in 1962. [Ibid.] He later returned to Harvard as a fellow at the Kennedy Institute of Politics and edited the "Ripon Forum", the newspaper of a liberal Republican society.
Gilder served briefly in the United States Marine Corps. [Gilder anecdotally writes about his time in the Marine Corps in [http://www.forbes.com/2006/12/14/fisher-gilder-telecosm-pf-guru-in_gg_1214soapbox_inl.html this Forbes article] .]
peechwriting
In the 1960s Gilder served as a speechwriter for several prominent officials and candidates, including Nelson Rockefeller, George Romney, and Richard Nixon. He worked as a spokesman for the liberal Republican Senator Charles Mathias as anti-war protesters surrounded the capital, some eventually scaring Gilder out of his apartment. Gilder moved to Harvard Square the following year and became a writer, modeling himself after Joan Didion.
With his college roommate Bruce Chapman, he wrote an attack on the anti-intellectual policies of Barry Goldwater entitled "The Party That Lost Its Head" (1966).
Critic of feminism
In the early 1970s Gilder wrote an article in the "Ripon Forum" defending President Richard Nixon's veto of a day-care bill sponsored by Senator Walter Mondale (D-MN) and Senator Jacob Javits (R-NY). He was promptly fired as editor of the "Forum". [MacFarquhar, ibid.]
Gilder enjoyed the controversy, appearing on "Firing Line" to defend himself and discovered he'd found "a way to arouse the passionate interest of women ... it was clear I had reached pay dirt." He decided to make himself into "America's number-one antifeminist". [Citation
last = Faludi
first = Susan
authorlink = Susan Faludi
title =
publisher = Crown
pages = p. 285
Gilder moved to New Orleans and worked in the mornings for Ben C. Toledano, Republican candidate for the United States Senate in 1972. The rest of the time he wrote "Sexual Suicide" (1973, revised and reissued as "Men and Marriage" (1986)). He argued that welfare and feminism broke the "sexual constitution" that had weaned men off their predatory instinct for sex, war, and the hunt and had subordinated them to women as fathers and providers. The book achieved a succès de scandale and "Time" made Gilder "Male Chauvinist Pig of the Year". [MacFarquhar, ibid.]
Gilder also wrote "Visible Man: A True Story of Post-Racist America" (1978, reissued in 1995), which the New York Times described in 1981 as "the account of a talented young black spoiled by the too-ready indolence of America's welfare system." [Roger Starr: A Guide To Capitalism. "The New York Times", February 1, 1981. http://query.nytimes.com/gst/fullpage.html?res=9D03E7D8123BF932A35751C0A967948260]
upply-side economics
Supply-side economics was formulated in the mid-1970s by Jude Wanniski and Robert L. Bartley at the Wall Street Journal as a counterweight to the reigning "demand-side" Keynesian economics. At the center of the concept was the Laffer Curve, the notion that high tax rates can reduce government revenue. The opponents of supply-side economics often refer to it as "trickle-down economics."
Inspired by Wanniski and by the works of headline economists like Milton Friedman and F.A. Hayek Gilder wrote a book extending the ideas of his "Visible Man" (1978) into the realm of economics, to balance his theory of poverty with a theory of wealth. [Citation
last = Gilder
first = George
title = Wealth and Poverty
publisher = ICS Press
pages = p. xi
year = 1993 ] The book, published as the best-selling "Wealth and Poverty" in 1981, communicated the ideas of supply-side economics to a wide audience in the United States and the world. [Gilder, ibid., p.xv]
Gilder also contributed to the development of supply-side economics when he served as Chairman of the Lehrman Institute's Economic Roundtable, as Program Director for the Manhattan Institute, and as a frequent contributor to Arthur Laffer's economic reports and the editorial page of "The Wall Street Journal". [ [http://www.discovery.org/scripts/viewDB/index.php?command=view&id=10&isFellow=true&PHPSESSID=81bcb4d1fad12396a49d13075385a348 Discovery institute biography] ]
The first mention of the word "Digerati" on USENET occurred in 1992, and referred to an article by George Gilder in "Upside" magazine. His other books include "Life After Television", a 1990 book that predicted microchip "telecomputers" connected by fiberoptic cable would make broadcast-model television obsolete. The book was also notable for being published by the Federal Express company and featuring full-page advertisements throughout. "The single most fascinating thing about "Life after Television", commented David Foster Wallace, "is that it's a book with "commercials"." [David Foster Wallace, "E Unibus Pluram: Television and U.S. Fiction", "Review of Contemporary Fiction", 185]
"Microcosm", about Carver Mead and the CMOS microchip revolution; "Telecosm", about the promise of fiber optics; and his latest, "The Silicon Eye", about the Foveon X3 sensor, a digital camera imager chip.
Gilder publishes a subscription newsletter called the "Gilder Technology Report" with "Forbes" magazine.
Gilder bought the conservative political monthly magazine "The American Spectator" from its founder R. Emmett Tyrrell, Jr. in summer 2000, and switched the magazine's focus from politics to technology. [Citation
last = York
first = Byron
title = The Life and Death of the American Spectator
journal = The Atlantic Monthly
url = http://www.theatlantic.com/doc/prem/200111/york
date = November 2001
year = 2001 ] Experiencing his own financial problems in 2002 almost two years later [Citation
last = Prince
first = Marcello
title = Where Are They Now: George Gilder
journal = The Wall Street Journal
url = http://online.wsj.com/public/article/SB114433479738318882-A8pE_iAsXSSPVdrwX8oe89HANsc_20070507.html?mod=rss_free
date = 2006-05-08
year = 2006 ] Gilder sold the "Spectator" back to Tyrrell. [Cite news
last = Kurtz
first = Howard
title = The News That Didn't Fit To Print
work = The Washington Post
date = 2002-06-10]
Wealth and poverty
After completing "Visible Man" in the late 1970s Gilder began writing "The Pursuit of Poverty." In early 1981 Basic Books published the result as "Wealth and Poverty". It was an analysis of the roots of economic growth. Reviewing it within a month of the inauguration of the Reagan Administration the "New York Times" reviewer called it "A Guide to Capitalism". It offered, he wrote, "a creed for capitalism worthy of intelligent people." [Citation
last = Starr
first = Roger
title = A Guide to Capitalism
journal = The New York Times
url = http://query.nytimes.com/gst/fullpage.html?res=9D03E7D8123BF932A35751C0A967948260
year = 1981 ] The book was a New York Times bestseller [ [http://www.hawes.com/1981/1981-04-12.pdf Adult New York Times Best Seller List for April 12, 1981] and eventually sold over a million copies. [Faludi, ibid., p. 289]
In "Wealth and Poverty" Gilder extended the sociological and anthropological analysis of his early books in which he had advocated for the socialization of men into service to women through work and marriage. He wove these sociological themes into the economic policy prescriptions of supply-side economics. The breakup of the nuclear family and the policies of demand-side economics led to poverty. Family and supply-side policies led to wealth.
In reviewing the problems of the immediate past—the inflation, recession, and urban problems of the 1970s—and proposing his supply-side solutions, Gilder argued not just the practical but the moral superiority of supply-side capitalism over the alternatives. "Capitalism begins with giving," he asserted, while New Deal liberalism created moral hazard. It was work, family, and faith that created wealth out of poverty. "It is this supply-side moral vision that underlies all the economic arguments of "Wealth and Poverty," he wrote. [Gilder, ibid, p.xxii]
He helped found the Discovery Institute with Bruce Chapman. The organization started as a moderate group which aimed to privatize and modernize Seattle's transit systems but it later became the leading think tank of the intelligent design movement, with Gilder penning many articles in favor of ID and opposing the theory of evolution. [Chris C. Mooney, [http://www.prospect.org/web/page.ww?section=root&name=ViewWeb&articleId=10084 "Inferior Design"] , "The American Prospect", September 2005, excerpt from "The Republican War on Science" (2005)] In contrast to others at the institute who deny that Shannon information theory provides a good measure for biological information, Gilder claims that Shannon information theory actually disproves evolution. [George Gilder, [http://www.discovery.org/scripts/viewDB/index.php?command=view&id=3631 "Evolution and Me"] "National Review", July 17, 2006)]
Bibliography (partial)
*"Life After Television" (1990)
*"Men and Marriage" (1986)
*"Microcosm: The Quantum Revolution In Economics And Technology" (1989)
*"Naked Nomads: Unmarried Men in America" (1974)
*"Recapturing the Spirit of Enterprise"
*"Sexual Suicide" (1973)
*"TELECOSM: How Infinite Bandwidth will Revolutionize Our World" (2000)
*"Telecosm: The World After Bandwidth Abundance" (2002)
*"The Meaning of the Microcosm"
*"The Party That Lost Its Head" (1966)
*"The Silicon Eye: How a Silicon Valley Company Aims to Make All Current Computers, Cameras, and Cell Phones Obsolete" (2005)
*"The Silicon Eye: Microchip Swashbucklers and the Future of High-Tech Innovation" (2006)
*Foreword to "The Theology of Welfare"
*"Visible Man: A True Story of Post-Racist America" (1978)
*"Wealth and Poverty" (1981)
*Citation
first = George F.
title = The suicide of the sexes
journal = Harper's
url = http://www.harpers.org/archive/1973/07/0021760
date = July 1973
title = Erect in utopia
title = Prometheus bound
date = September 1978
title = The make-work economy
last1 = Luttwak |first1 = Edward
last2 = Phillips |first2 = Kevin P.
last3 = Marin |first3 = Peter
last4 = Chace |first4 = James
last5 = FitzGerald |first5 = Frances
last6 = Gilder |first6 = George F.
last7 = Kennedy |first7 = Paul M.
title = What are the consequences of Vietnam?
date = April 1985
last2 = Reich |first2 = Robert B.
last3 = Blackwell |first3 = Ronald
last4 = Dunlap |first4 = Albert J. (Albert John)
title = Does America still work?
date = May 1996
* [http://www.discovery.org/scripts/viewDB/index.php?command=view&id=10 Discovery institute biography]
* [http://www.nndb.com/people/871/000030781/ NNDB Profile]
* [http://www.gildertech.com/ George Gilder's Gilder Technology Report]
* [http://www.seas.upenn.edu/~gaj1/ggindex.html Gilder article index]
*"Wired" [http://www.wired.com/wired/archive/people/george_gilder/ profile]
* [http://www.gilder.com/ Gilder Publishing, LLC]
*Ray Kurzweil [http://www.kurzweilai.net/bios/frame.html?main=/bios/bio0004.html biography of George Gilder]
* [http://www.booknotes.org/Transcript/?ProgramID=1437 "Booknotes" interview with Gilder on "Microcosm: The Quantum Revolution in Economics and Technology", September 24, 1989.]
* [http://www.calvin.edu/january/2004/gilder.htm Audio link to 2004 speech by George Gilder in which he defends himself and his friend Bernard Ebbers of Worldcom ]
* [http://www.itconversations.com/shows/detail669.html Audio interview with Larry Magid at IT Conversations]
* [http://www.seattleweekly.com/news/9941/features-white.php Techno-tyrants Led by renowned "visionary" George Gilder, Seattle's Discovery Institute is hard at work making sure the future stays in the hands of good ol' white boys] ("Seattle Weekly", October 13, 1999)
* [http://online.wsj.com/public/article/SB114433479738318882-A8pE_iAsXSSPVdrwX8oe89HANsc_20070507.html?mod=rss_free Where Are They Now: George Gilder] ("Wall Street Journal", May 8, 2006)
* [http://www.nytimes.com/2007/02/04/books/review/Letters.t-1.html?_r=1&oref=slogin Letter defending Dinesh D'Souza and expressing sympathy for supporters of Islamic Jihad against the West] ("New York Times Book Review", February 4, 2007)
ee also
pages = pp. 283-290
Источник: George Gilder
Другие книги по запросу «Telecosm : How Infinite Bandwidth Will Revolutionize Our World / Telecosm или как беспредельная пропускная способность Сети изменит мир» >>


Health.bl.ee review & pagerank - Добро пожаловать на health.bl.ee! Hostinger хостинг с MySQL и PHP.
Health.bl.ee website is scored 250 1Pagerank.com points (1PRS) and has a global traffic ranking of 36,433 in the world. This website Google PageRank is 0 out of maximum 10 and its estimated worth is about $ 215,280.00. It has potential to earn online around $ 299.00 US Dollar daily. Health.bl.ee was registered 201 decades 8 years ago (0000-00-00) and is hosted in England, Manchester, United Kingdom.
Добро пожаловать на health.bl.ee! Hostinger хостинг с MySQL и PHP.


Tonight we bring you a tropical twist on a classic cocktail you've seen on this blog before: the Gimlet.
Now a classic vodka (or gin) gimlet conjures up dimly lit dives with dangerous dames waiting to wreck your life for a smile. Ok, I'm a sucker for all that is Raymond Chandler. This little lady is what Philip Marlowe would order while tracking a shady character to a tropical locale.
Muddled fresh pineapple and chunks of ginger root, fresh lime juice, Rose's lime, vodka-all shaken with ice and strained out into the glass. Sweet and tart at the same time, with a subtle hit of heat from the ginger. If you prefer a sweeter drink (the fresh pineapple provides plenty for me), add a bit more Rose's lime. This is a delicious drink. You can taste all the individual ingredients, yet they dance in the glass to somehow become a new flavor blend. I love it.
4 3/4 Olives. Perfect for a summer bbq, luau, or just whenever you want a mini vacation in a glass.
Happy sipping and happy weekend!


Whether you have purchased your vehicle from us or not, Lake Country Toyota is your #1 destination for auto service and repair in Baxter, MN. Our team of specially trained technicians have the know-how and tools at their disposal that enable them to provide quality repairs and maintenance for all of our clients during every visit.
Our Toyota service center features the latest in automotive repair and maintenance technology. Schedule your next service appointment below, and we'll contact you to confirm the details.
Minnesota's beautiful scenery is a sight to behold. Cruise past our picturesque lakes and parks in a sleek new car. Lake Country Toyota offers deals on NEW and USED TOYOTA MODELS. We're a high-quality dealership serving the Grand Rapids, Longville, and Brainerd communities.
Our superior sales team's only goal is to satisfy our customers. Ultimately, they like to see each person who walks through our doors drive away with a smile on his or her face. Our new and pre-owned Toyota selection is presented to you with our best prices first. This negates the need for haggling, hassling, and negotiating, thus simplifying the car buying experience. When you shop with us, our sales team will work with you to find the right vehicle to meet your budget and needs. They'll talk you through our low-interest rates, leasing options, and FINANCING choices to arm you with information before making a final decision.
After your purchase, we guarantee we'll be here if you hit a bump in the road. Our expert TOYOTA SERVICE TEAM knows every nook and cranny of your vehicle. Whether you need minor maintenance or major repairs, they can put your mind at ease. If you prefer to get under the hood yourself, we have an expansive inventory of OEM TOYOTA PARTS in stock. Your Toyota is our specialty, so we'll get you back on the road to Crosslake, Breezy Point or Crosby in no time!
We know how much you depend on your car, and we hope you'll put your trust in us to take care of all your automotive needs. We welcome our neighbors from Ironton, Aitkin, Garrison and beyond to visit our Toyota dealership, conveniently located on the west side of Highway 371, just south of Pine Beach Road in Baxter. Stop by to test-drive your favorite model today!
Great service. Bought a vehicle and they always are kind and courteous when I bring it in for service. Great employees and a great team. I don't see my family buying a vehicle anywhere else in the future. That's how great they have taken care of our vehicle.
Thanks to Brian at Lake Country Toyota for again, for the 3rd time, handling the lease on my RAV 4. I LOVE the RAV and have always had wonderful service from Brian, the service department, and management. They know me and what I want in my RAV and find one that meets all my needs and expectations. I will definitely continue to lease from Lake Country Toyota!
The quality of service here is the best I have ever seen. From buying my car to the service department I can't think of anything I would want changed.


So, if you would like secure all of these fantastic images about Calling Card Maker App, click on save button to store these shots in your personal computer. They are ready for down load, if you love and want to have it, simply click save logo on the page, and it'll be instantly saved in your pc.%] As a final point if you'd like to have new and latest photo related to Calling Card Maker App, please follow us on google plus or book mark this page, we attempt our best to give you regular up-date with all new and fresh images. Hope you enjoy staying here. For most updates and recent news about Calling Card Maker App pictures, please kindly follow us on twitter, path, Instagram and google plus, or you mark this page on book mark section, We attempt to present you update periodically with all new and fresh photos, like your surfing, and find the best for you.


text:
APPEARS IN Fundraising
The Volunteer State Lives Up to Its Name
by Christina Paladeau - Monday, May 21, 2018
When it comes to living up to a reputation, it's hard to find a better example than the dedicated supporters of Friends of NRA in western Tennessee. For everyone from committee members and shooting sports program coordinators to local business owners looking to support their community, volunteering is a love that runs deep.
"Through the many programs The NRA Foundation supports, contributes to, funds and generally makes possible, it is reaching so many young people."
Friends of NRA committees all across the region—and even the entire state—have enjoyed a special boost to their fundraising efforts for several years. It comes in the form of Scott Kilby, owner of the local Range USA, Inc., indoor shooting and training facilities.
"Range USA has been involved with Friends of NRA in some capacity since we opened in 2002," Scott explains. "Range USA is passionate about the Second Amendment and the vital role our youth will play in protecting that freedom—they are ones the baton will be handed off to. Through the many programs The NRA Foundation supports, contributes to, funds and generally makes possible, it is reaching so many young people. Range USA loves and supports all the wonderful things Friends of NRA is involved with. My only regret is that we aren't able to help even more than we do!"
Attendees line up for a recent Gun-O-Rama event at Range USA. Photo courtesy/Scott Kilby.
"Scott is a true patriot and friend to Friends of NRA," says Mike Webb, NRA senior field representative for Tennessee. "Range USA hosts our Gun-O-Rama events at its two locations in Jackson and Memphis. Scott donates door prizes, food and range time for attendees of those events and hosts other fundraising contests for us in his shops all the time."
Driving the interest in and success of those Gun-O-Rama's even more, Scott pays for all postage on the promotional marketing materials sent out by the committees and also advertises in the Range USA newsletter—which reaches tens of thousands of shooting sports enthusiasts in the area. Postage might seem like a minor detail in a fundraising budget, but that donation adds up to more than $10,000 in net revenue to the Memphis Friends of NRA event and more than $7,000 to the Forked Deer Friends of NRA event in Jackson.
For the Memphis, West Tennessee, Tipton County, Fayette County and Forked Deer Friends of NRA banquet events, Scott underwrites the firearm door prize and provides a free range pass—valued at $18—to every attendee. Plus he sponsors four event game tables at his hometown banquet in Memphis. In 2017 and 2018, Scott also contributed to Friends of NRA as a statewide donor, providing God's Glory Bible for every event held in Tennessee to use for its fundraising efforts.
Attendees browse the merchandise at a recent Gun-O-Rama event at Range USA.
"I'm always thrilled to see the fundraising success at the area Friends of NRA banquets that Range USA supports and donates to," notes Scott. "Obviously, Range USA is not the only reason all the banquets do so well—it's because of the community involvement including other supporting business and the amazing committee volunteers."
One of those volunteers is Mitch Dean, the new chairman of the Memphis Friends of NRA committee. He returns that recognition and appreciation for all the contributions of time, space and monetary support provided by Range USA to the Memphis committee. "Scott and the team at Range USA have a huge impact on our fundraising efforts through a multitude of ways," he notes. "They contribute thousands of dollars of support, act as one of our event FFLs, provide space for our committee to meet and help in most any way that we ask. They are truly one of the anchor holds to our success. We also have a phenomenal field rep in Mike Webb and some of the finest people on our committee that I've ever met. It's an honor to work with all of them."
When Mitch came across Friends of NRA through a Google search in 2014, he quickly put the full weight of his volunteering commitment into the program after learning about the impact of NRA Foundation grants.
MidSouth Quail Forever youth program participants display their NRA Foundation recognition. Photo courtesy/Johnny McFarland.
"Having been in non-profit work before and having a new-found passion for shooting, I decided to explore [the program] deeper," Mitch explains. "I went to my first committee meeting and learned about the work being done in our area from some of the coaches and supporters. One coach worked with a small group of young men at an inner-city school that would be the last place you would expect to have a trap program. I heard, from more than one witness, the discipline of those young men and respect they demonstrated to their coach, the other competitors and their sport. That's when I decided this was an effort in which I could invest myself."
Fellow Memphis Friends of NRA committee members Johnny McFarland and Robert Gorman join Mitch as dedicated volunteers. They both see the fundraising come full circle, experiencing the direct impact of grant funding through their involvement with local firearms education and training programs.
A MidSouth Quail Forever YHEC participant is coached in rifle. Photo courtesy/Johnny McFarland.
The MidSouth Quail Forever chapter, for which Johnny McFarland is the sporting clays chairman, has received 11 NRA Foundation grants totaling nearly $14,000 to fund the organization's Youth Hunter Education Challenge (YHEC) and Youth Quail Hunt activities.
"The NRA Foundation grants enable us to have a much larger group participate than the chapter could afford on our own," Johnny notes. "Our Quail Forever chapter became involved with Friends of NRA more than ten years ago. We usually sell out one or two tables at the banquet each year, and banquet committee members volunteer at the YHEC event. Our chapter is happy to support Friends of NRA events, and we have even been a statewide sponsor in conjunction with other Tennessee Quail Forever chapters. The NRA Foundation has been a big supporter of youth hunts and youth events throughout the state of Tennessee."
The Arlington Trappers SCTP team at 2017 Nationals. Photo courtesy/Robert Gorman.
Among those youth activities, the Arlington Trappers has received an NRA Foundation grant every year since 2007—adding up to 12 grants totaling more than $40,000—for its Scholastic Clay Target Program (SCTP) team. Robert Gorman continues to help with the Arlington Trappers shotgun and Arlington Steel action pistol programs after eight years of direct involvement.
"When it all comes down to it, these young men and women are the future of shooting sports and gun safety, so it really is all about them and making an impact on their lives."
"The ammo, firearms, practice equipment and safety gear provided through NRA Foundation grants have allowed us to practice more and develop skills, including through dryfire systems and other training devices when we cannot shoot outside," Robert explains. "When it all comes down to it, these young men and women are the future of shooting sports and gun safety, so it really is all about them and making an impact on their lives. Friends of NRA understands that and helps provide an avenue for young people to be involved with shooting sports."
Robert also emphasizes the value in the approach that Friends of NRA takes to fundraising for and promoting firearms training and education programs. "I really like how Friends of NRA is not political and is all volunteer-driven," he shares. "It is for programs that help kids, law enforcement, hunting initiatives and all kinds of safety programs. I continue to volunteer for the program due to the impact it can have on youth, women and shooting programs across the country."
Robert captures the driving force behind his fellow west Tennessee Friends of NRA volunteers and community supporters—and that of everyone around the country who works to continue building this program's success. The efforts of these Memphis committee members and local sponsor Range USA prove that where there's a volunteer spirit, there's a positive impact just around the corner.
MidSouth Quail Forever YHEC participants on the archery line. Photo courtesy/Johnny McFarland.
"At every banquet, there is a list of programs that The NRA Foundation funds statewide," Scott concludes. "I have seen the Eddie Eagle Program brought to several area law enforcement agencies and seen the program delivered to area schools. And I am aware of several area high school trap teams that wouldn't exist without the NRA Foundation grants funded by Friends of NRA. So, I know that Friends of NRA is touching the lives of children and teenagers all over west Tennessee for the better! It makes me proud to know that Range USA played a part and contributed to the community and our young people in all those wonderful ways. And, I just want to see those numbers and programs grow."
Apply for an NRA Foundation grant for your firearms training programs, range projects and more at www.nrafoundation.org. Support the grant program by attending a Friends of NRA event near you! Find one at www.friendsofnra.org/Events.
Republished from Traditions Quarter 1: 2018.
NRA Foundation Fundraising Volunteer Tennessee Traditions Magazine
National Shooting Sports Month – The Best Way to Grow the Shooting Sports
T is for Team - Bonner County Women on Target
Broadwater County 4-H receives NRA Foundation Grant
New Beginnings in Pennsylvania