text:
describe( "tFormer options: ", function () {

	describe( 'Defaults', function () {
		var f = tFormer( 'f_no_sb' );
		it( 'timeout = 0', function () {
			expect( f.get( 'timeout' ) ).toBe( 0 );
		} );
		it( 'requestTimeout = 2000', function () {
			expect( f.get( 'requestTimeout' ) ).toBe( 2000 );
		} );
		it( 'errorClass = "error"', function () {
			expect( f.get( 'errorClass' ) ).toBe( 'error' );
		} );
		it( 'processingClass = "processing"', function () {
			expect( f.get( 'processingClass' ) ).toBe( 'processing' );
		} );
		it( 'disabledClass = "disabled"', function () {
			expect( f.get( 'disabledClass' ) ).toBe( 'disabled' );
		} );
		it( 'validateEvent = "input keyup"', function () {
			expect( f.get( 'validateEvent' ) ).toBe( 'input keyup' );
		} );
		it( 'submitButtonControl = true', function () {
			expect( f.get( 'submitButtonControl' ) ).toBeTruthy();
		} );
		it( 'submitButton = null', function () {
			expect( f.get( 'submitButton' ) ).toBeNull();
		} );
		it( 'submit() = undefined', function () {
			expect( f.get( 'submit' ) ).not.toBeDefined();
		} );
		it( 'before() = undefined', function () {
			expect( f.get( 'before' ) ).not.toBeDefined();
		} );
		it( 'onvalid() = undefined', function () {
			expect( f.get( 'onvalid' ) ).not.toBeDefined();
		} );
		it( 'onerror() = undefined', function () {
			expect( f.get( 'onerror' ) ).not.toBeDefined();
		} );

		it( 'fields: rules = undefined', function () {
			expect( !!f.field( 't_text' ).get( 'rules' ) ).toBe( false );
		} );
		it( 'fields: url = undefined', function () {
			expect( (f.field( 't_text' ).get( 'request' ) || {}).url ).not.toBeDefined();
		} );
		it( 'fields: method = undefined', function () {
			expect( (f.field( 't_text' ).get( 'request' ) || {}).method ).not.toBeDefined();
		} );
		it( 'fields: data = undefined', function () {
			expect( (f.field( 't_text' ).get( 'request' ) || {}).data ).not.toBeDefined();
		} );
		it( 'fields: start() = undefined', function () {
			expect( (f.field( 't_text' ).get( 'request' ) || {}).start ).not.toBeDefined();
		} );
		it( 'fields: end() = undefined', function () {
			expect( (f.field( 't_text' ).get( 'request' ) || {}).end ).not.toBeDefined();
		} );
		it( 'fields: own() = undefined', function () {
			expect( f.field( 't_text' ).get( 'own' ) ).not.toBeDefined();
		} );
	} );

	describe( 'Changed', function () {
		var f = tFormer( 'f', {
			timeout            : 123,
			requestTimeout     : 123,
			errorClass         : '_error',
			processingClass    : '_processing',
			disabledClass      : '_disabled',
			validateEvent      : 'blur',
			submitButtonControl: false,
			submitButton       : $( '.f_sb_not_button' ).find( '.submit' )[0],
			before             : function () {
				return 'before_changed';
			},
			onerror            : function () {
				return 'onerror_changed';
			},
			onvalid            : function () {
				return 'onvalid_changed';
			},
			submit             : function () {
				return 'submit_changed';
			},
			fields             : {
				t_text: {
					timeout        : 123123,
					requestTimeout : 123123,
					errorClass     : '_error123',
					processingClass: '_processing123',
					validateEvent  : 'blur keyup',
					before         : function () {
						return 'before_changed';
					},
					onerror        : function () {
						return 'onerror_changed';
					},
					onvalid        : function () {
						return 'onvalid_changed';
					},
					own            : function () {
						return 'own_changed';
					},
					rules          : '*',
					request        : {
						url   : 'ajax.html',
						data  : {
							some: 'value'
						},
						method: 'post',
						start : function () {
							return 'start_changed';
						},
						end   : function () {
							return 'end_changed';
						}
					}
				}
			}
		} );
		describe( 'through options while defining new tFormer object', function () {
			it( 'timeout changed', function () {
				expect( f.get( 'timeout' ) ).not.toBe( 0 );
			} );
			it( 'requestTimeout changed', function () {
				expect( f.get( 'requestTimeout' ) ).not.toBe( 2000 );
			} );
			it( 'errorClass changed', function () {
				expect( f.get( 'errorClass' ) ).not.toBe( 'error' );
			} );
			it( 'processingClass changed', function () {
				expect( f.get( 'processingClass' ) ).not.toBe( 'processing' );
			} );
			it( 'disabledClass changed', function () {
				expect( f.get( 'disabledClass' ) ).not.toBe( 'disabled' );
			} );
			it( 'validateEvent changed', function () {
				expect( f.get( 'validateEvent' ) ).not.toBe( 'input keyup' );
			} );
			it( 'submitButtonControl changed', function () {
				expect( f.get( 'submitButtonControl' ) ).toBe( false );
			} );
			it( 'submitButton changed', function () {
				expect( f.get( 'submitButton' ) ).not.toBeNull();
			} );
			it( 'submit() changed', function () {
				expect( f.get( 'submit' )() ).toBe( 'submit_changed' );
			} );
			it( 'before() changed', function () {
				expect( f.get( 'before' )() ).toBe( 'before_changed' );
			} );
			it( 'onvalid() changed', function () {
				expect( f.get( 'onvalid' )() ).toBe( 'onvalid_changed' );
			} );
			it( 'onerror() changed', function () {
				expect( f.get( 'onerror' )() ).toBe( 'onerror_changed' );
			} );

			it( 'fields: rules changed', function () {
				expect( f.field( 't_text' ).get( 'rules' ) ).toBe( '*' );
			} );
			it( 'fields: url changed', function () {
				expect( f.field( 't_text' ).get( 'request' ).url ).toBe( 'ajax.html' );
			} );
			it( 'fields: method changed', function () {
				expect( f.field( 't_text' ).get( 'request' ).method ).toBe( 'post' );
			} );
			it( 'fields: data changed', function () {
				expect( f.field( 't_text' ).get( 'request' ).data.some ).toBe( 'value' );
			} );
			it( 'fields: start() changed', function () {
				expect( f.field( 't_text' ).get( 'request' ).start() ).toBe( 'start_changed' );
			} );
			it( 'fields: end() changed', function () {
				expect( f.field( 't_text' ).get( 'request' ).end() ).toBe( 'end_changed' );
			} );
			it( 'fields: own() changed', function () {
				expect( f.field( 't_text' ).get( 'own' )() ).toBe( 'own_changed' );
			} );
		} );
	} );
} );

redpajama_set_name: RedPajamaGithub


Texas Gov. Rick Perry, announcing his bid for the GOP presidential nomination Saturday, also took time to blast what he described as jobs-killing effort to stop "phony" global warming.
Perry calls global warming "all one contrived phony mess that is falling apart under its own weight," the British Guardian reports.
Perry is virtually unique in the current presidential field in that he hasn't expressed concern about climate change in the past, so he won't have to do any back-pedaling.
"Based on climate views alone, anyone who is holding their nose voting for Mitt Romney because there's no other viable candidate will now rejoice to have an option with Rick Perry," says Marc Morano, a leading climate change skeptic.
Perry served as Al Gore's Texas campaign chair in the 1988 presidential race, but conservatives don't have to worry that Perry holds any residual affection for the former veep.
"I've heard Al Gore talk about man-made global warming so much that I'm starting to think that his mouth is the leading source of all that supposedly deadly carbon dioxide," Perry said in 2007.
Anti-tax zealot Grover Norquist, for one, isn't concerned: "If Perry was president, one of the things I'd not worry about is a carbon tax," Norquist told Politico. "I'd worry about big spiders eating New Jersey first."
Perry also prays for a rollback of EPA regulations: "Frankly I pray for the president every day," he recently told CBN News. "I pray for his wisdom. I pray that God will open his eyes. I wish this president would turn back the health-care law that's been passed, ask that his EPA back down all these regulations that are causing businesses to hesitate to spend money."


text:
#import "CC3TargettingNode.h"

@interface CC3Node (TemplateMethods)
-(void) applyRotation;
-(void) updateGlobalLocation;
-(void) populateFrom: (CC3Node*) another;
@property(nonatomic, readonly) CC3GLMatrix* globalRotationMatrix;
@end

@interface CC3TargettingNode (TemplateMethods)
-(void) applyTargetLocation;
-(void) applyTargetDirectionRotation;
-(CC3Vector) rotationallyRestrictTargetLocation: (CC3Vector) aLocation;
-(void) resetTargetTrackingState;
@property(nonatomic, readonly) BOOL isNewTarget;
@property(nonatomic, readonly) BOOL isTargetLocationDirty;
@property(nonatomic, readonly) BOOL isRotatorDirtyByTargetLocation;
@property(nonatomic, readonly) BOOL shouldRotateToTarget;
@property(nonatomic, readonly) BOOL shouldRotateToTargetLocation;
@end

@implementation CC3TargettingNode

@synthesize target, targetLocation, shouldTrackTarget, axisRestriction;

-(void) dealloc {
	[target release];
	[super dealloc];
}

-(void) setTarget:(CC3Node *) aNode {
	CC3Node* oldTarget = target;
	target = [aNode retain];
	isNewTarget = (target != oldTarget);
	[oldTarget release];
}

// Set the location anyway...and mark target location dirty if not set to track
-(void) setLocation: (CC3Vector) aLocation {
	[super setLocation: aLocation];
	if (!shouldTrackTarget) {
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(void) setRotation: (CC3Vector) aRotation {
	if (!shouldTrackTarget) {
		[super setRotation: aRotation];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(void) rotateBy: (CC3Vector) aRotation {
	if (!shouldTrackTarget) {
		[super rotateBy: aRotation];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(void) setQuaternion: (CC3Vector4) aQuaternion {
	if (!shouldTrackTarget) {
		[super setQuaternion: aQuaternion];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(void) rotateByQuaternion: (CC3Vector4) aQuaternion {
	if (!shouldTrackTarget) {
		[super rotateByQuaternion: aQuaternion];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(void) setRotationAxis: (CC3Vector) aDirection {
	if (!shouldTrackTarget) {
		[super setRotationAxis: aDirection];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(GLfloat) rotationAngle {
	return rotator.rotationAngle;
}

-(void) setRotationAngle: (GLfloat) anAngle {
	if (!shouldTrackTarget) {
		[super setRotationAngle: anAngle];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(void) rotateByAngle: (GLfloat) anAngle aroundAxis: (CC3Vector) anAxis {
	if (!shouldTrackTarget) {
		[super rotateByAngle: anAngle aroundAxis: anAxis];
		isTargetLocationDirty = YES;
		isRotatorDirtyByTargetLocation = NO;
	}
}

-(CC3Vector) targetLocation {
	if (isTargetLocationDirty) {
		CC3Vector gLoc = self.globalLocation;
		// To avoid rounding errors when adding wildly different values, scale the forward
		// direction (which is normalized so all components are < 1) to values that are roughly
		// compatible with the size of the global location of this node. This is done by using
		// simply totaling positive X + Y + Z of global location, and ensuring it is not zero.
		GLfloat dirScale = MAX(ABS(gLoc.x) + ABS(gLoc.y) + ABS(gLoc.z), 1.0f);
		CC3Vector fwdDir = self.forwardDirection;
		CC3Vector scaledDir = CC3VectorScaleUniform(fwdDir, dirScale);
		targetLocation = CC3VectorAdd(gLoc, scaledDir);
		isTargetLocationDirty = NO;
		LogTrace(@"%@ calculating target location from global location: %@, forward dir: %@, dir scale: %.2f, scaled dir: %@, target location: %@",
				 self, NSStringFromCC3Vector(gLoc), NSStringFromCC3Vector(fwdDir), dirScale,
				 NSStringFromCC3Vector(scaledDir), NSStringFromCC3Vector(targetLocation));
	}
	return targetLocation;
}

/**
 * The new target location cannot be applied immediately, because the direction to
 * the target depends on the transformed global location of both this node
 * and the target location. Remember that it was set.
 */
-(void) setTargetLocation: (CC3Vector) aLocation {
	targetLocation = [self rotationallyRestrictTargetLocation: aLocation];
	isTargetLocationDirty = NO;
	[self markTransformDirty];
	isRotatorDirtyByTargetLocation = YES;
}

/**
 * If the value of the axisRestriction property is set to one of kCC3TargettingAxisRestrictionXAxis,
 * kCC3TargettingAxisRestrictionYAxis or kCC3TargettingAxisRestrictionZAxis, the value of the
 * corresponding component of the specified location will be set to the value of that component
 * from the globalLocation of this node. The result is that rotation will be restricted to only
 * that axis. For example, by setting the axisRestriction property to kCC3TargettingAxisRestrictionYAxis,
 * the Y-component of the specified location will be set to the Y-component of the globalLocation
 * of this targetting node.
 */
-(CC3Vector) rotationallyRestrictTargetLocation: (CC3Vector) aLocation {
	switch (axisRestriction) {
		case kCC3TargettingAxisRestrictionXAxis:
			aLocation.x = self.globalLocation.x;
			break;
		case kCC3TargettingAxisRestrictionYAxis:
			aLocation.y = self.globalLocation.y;
			break;
		case kCC3TargettingAxisRestrictionZAxis:
			aLocation.z = self.globalLocation.z;
			break;
		default:
			break;
	}
	return aLocation;
}

-(CC3Vector) forwardDirection {
	return ((CC3DirectionalRotator*)rotator).forwardDirection;
}

-(CC3Vector) globalForwardDirection {
	return [self.globalRotationMatrix extractForwardDirection];
}

-(void) setForwardDirection: (CC3Vector) aDirection {
	if (!shouldTrackTarget) {
		((CC3DirectionalRotator*)rotator).forwardDirection = aDirection;
		isRotatorDirtyByTargetLocation = NO;
		[self markTransformDirty];
	}
}

-(CC3Vector) upDirection {
	return ((CC3DirectionalRotator*)rotator).upDirection;
}

-(CC3Vector) globalUpDirection {
	return [self.globalRotationMatrix extractUpDirection];
}

-(CC3Vector) worldUpDirection {
	return ((CC3DirectionalRotator*)rotator).worldUpDirection;
}

-(void) setWorldUpDirection: (CC3Vector) aDirection {
	((CC3DirectionalRotator*)rotator).worldUpDirection = aDirection;
	[self markTransformDirty];
}

-(CC3Vector) rightDirection {
	return ((CC3DirectionalRotator*)rotator).rightDirection;
}

-(CC3Vector) globalRightDirection {
	return [self.globalRotationMatrix extractRightDirection];
}

-(BOOL) shouldAutotargetCamera {
	return shouldAutotargetCamera;
}

-(void) setShouldAutotargetCamera: (BOOL) shouldAutotarg {
	shouldAutotargetCamera = shouldAutotarg;
	self.shouldTrackTarget = shouldAutotarg;
}

#pragma mark Allocation and initialization

-(id) initWithTag: (GLuint) aTag withName: (NSString*) aName {
	if ( (self = [super initWithTag: aTag withName: aName]) ) {
		target = nil;
		targetLocation = kCC3VectorZero;
		axisRestriction = kCC3TargettingAxisRestrictionNone;
		isNewTarget = NO;
		shouldTrackTarget = NO;
		shouldAutotargetCamera = NO;
		isTargetLocationDirty = NO;
		isRotatorDirtyByTargetLocation = NO;
		wasGlobalLocationChanged = NO;
	}
	return self;
}

-(NSString*) fullDescription {
	return [NSString stringWithFormat: @"%@, targetted at: %@, from target: %@",
			[super fullDescription], NSStringFromCC3Vector(targetLocation), target];
}

-(id) rotatorClass {
	return [CC3DirectionalRotator class];
}

// Protected properties for copying
-(BOOL) isNewTarget { return isNewTarget; }
-(BOOL) isTargetLocationDirty { return isTargetLocationDirty; }
-(BOOL) isRotatorDirtyByTargetLocation { return isRotatorDirtyByTargetLocation; }
-(BOOL) wasGlobalLocationChanged { return wasGlobalLocationChanged; }

// Template method that populates this instance from the specified other instance.
// This method is invoked automatically during object copying via the copyWithZone: method.
-(void) populateFrom: (CC3TargettingNode*) another {
	[super populateFrom: another];

	[target release];
	target = [another.target retain];			// retained...not copied

	targetLocation = another.targetLocation;
	axisRestriction = another.axisRestriction;
	isNewTarget = another.isNewTarget;
	shouldTrackTarget = another.shouldTrackTarget;
	shouldAutotargetCamera = another.shouldAutotargetCamera;
	isTargetLocationDirty = another.isTargetLocationDirty;
	isRotatorDirtyByTargetLocation = another.isRotatorDirtyByTargetLocation;
	wasGlobalLocationChanged = another.wasGlobalLocationChanged;
}

#pragma mark Updating

-(void) trackTargetWithVisitor: (CC3NodeTransformingVisitor*) visitor {
	if (self.shouldRotateToTarget) {
		self.targetLocation = target.globalLocation;
		[visitor visit: self];		// Recalculate transforms
		LogTrace(@"%@ tracking adjusted to target", [self fullDescription]);
	}
	[self resetTargetTrackingState];
}

/**
 * Returns whether this node should rotate to face the target. It will do so if:
 *   - target exists, AND
 *   - the target has just been set OR shouldTrackTarget is YES, AND
 *   - either the global location of this node or the target node has changed
 */
-(BOOL) shouldRotateToTarget {
	return target && (isNewTarget || shouldTrackTarget)
				&& (wasGlobalLocationChanged || !CC3VectorsAreEqual(self.targetLocation, target.globalLocation));
}

#pragma mark Transformations

/** Keeps track of whether the globalLocation is changed by this method. */
-(void) updateGlobalLocation {
	CC3Vector oldGlobLoc = globalLocation;
	[super updateGlobalLocation];
	wasGlobalLocationChanged = !CC3VectorsAreEqual(globalLocation, oldGlobLoc);
}

/**
 * Target location can only be applied once translation is complete, because the
 * direction to the target depends on the transformed global location of both this
 * node and the target location.
 */
-(void) applyRotation {
	if (self.shouldRotateToTargetLocation) {
		[self applyTargetLocation];
		[self applyTargetDirectionRotation];
		isRotatorDirtyByTargetLocation = NO;
	} else {
		[super applyRotation];
	}
}

/**
 * Template method to update the rotator transform from the targetLocation
 * and the globalLocation.
 *
 * Only update the rotation transform if the targetLocation was changed, or this
 * node has moved. But don't update if the target location is the same as the
 * globalLocation of this node (which makes the direction to point undefined).
 */
-(void) applyTargetLocation {
	CC3Vector targLoc = self.targetLocation;
	CC3Vector globLoc = self.globalLocation;
	if ((isRotatorDirtyByTargetLocation || wasGlobalLocationChanged)
			&& !CC3VectorsAreEqual(targLoc, globLoc)) {
		((CC3DirectionalRotator*)rotator).forwardDirection = CC3VectorDifference(targLoc, globLoc);
	}
}

/**
 * Applies the target location rotation using the forward direction.
 *
 * Since we want to target a global direction, we must ignore the rotation
 * of all ancestor nodes. The transformMatrix is rebuilt using the globalLocation
 * (which was calculated during the location transform), and then the global
 * rotation is applied by the rotator. Finally, the ancestor scale is applied.
 */
-(void) applyTargetDirectionRotation {
	[transformMatrix populateIdentity];
	[transformMatrix translateBy: self.globalLocation];
	[super applyRotation];
	if (parent) {
		[transformMatrix scaleBy: parent.globalScale];
	}
}

/**
 * Returns whether this node should rotate to face the targetLocation.
 * It will do so if targetDirection was just set, or shouldTrackTarget is YES.
 */
-(BOOL) shouldRotateToTargetLocation {
	return isRotatorDirtyByTargetLocation || shouldTrackTarget;
}

/**
 * Resets the internal indicators of whether the target or this instance has moved
 * and therefore the targetLocation needs updating.
 */
-(void) resetTargetTrackingState {
	isNewTarget = NO;
	wasGlobalLocationChanged = NO;
}

@end

#pragma mark -
#pragma mark CC3DirectionalRotator

@interface CC3Rotator (TemplateMethods)
-(void) applyRotation;
-(void) populateFrom: (CC3Rotator*) another;
@end

@interface CC3DirectionalRotator (TemplateMethods)
-(void) ensureForwardDirectionFromMatrix;
-(void) ensureUpDirectionFromMatrix;
-(void) ensureRightDirectionFromMatrix;
@property(nonatomic, readonly) BOOL isForwardDirectionDirty;
@property(nonatomic, readonly) BOOL isUpDirectionDirty;
@property(nonatomic, readonly) BOOL isRightDirectionDirty;
@property(nonatomic, readonly) BOOL isMatrixDirtyByDirection;
@end

@implementation CC3DirectionalRotator

-(CC3Vector) forwardDirection {
	[self ensureForwardDirectionFromMatrix];
	return forwardDirection;
}

-(void) setForwardDirection: (CC3Vector) aDirection {
	NSAssert(!CC3VectorsAreEqual(aDirection, kCC3VectorZero),
			 @"The forwardDirection may not be set to the zero vector.");

	forwardDirection = CC3VectorNormalize(aDirection);

	isRotationDirty = YES;
	isAxisAngleDirty = YES;
	isQuaternionDirty = YES;
	isQuaternionDirtyByAxisAngle = NO;
	isForwardDirectionDirty = NO;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;

	matrixIsDirtyBy = kCC3MatrixIsDirtyByDirection;
}

-(CC3Vector) upDirection {
	[self ensureUpDirectionFromMatrix];
	return upDirection;
}

-(CC3Vector) worldUpDirection {
	return worldUpDirection;
}

-(void) setWorldUpDirection: (CC3Vector) aDirection {
	NSAssert(!CC3VectorsAreEqual(aDirection, kCC3VectorZero),
			 @"The worldUpDirection may not be set to the zero vector.");

	worldUpDirection = CC3VectorNormalize(aDirection);

	isRotationDirty = YES;
	isAxisAngleDirty = YES;
	isQuaternionDirty = YES;
	isQuaternionDirtyByAxisAngle = NO;
	isForwardDirectionDirty = NO;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;

	matrixIsDirtyBy = kCC3MatrixIsDirtyByDirection;
}

-(CC3Vector) rightDirection {
	[self ensureRightDirectionFromMatrix];
	return rightDirection;
}

-(void) setRotation:(CC3Vector) aRotation {
	[super setRotation: aRotation];
	isForwardDirectionDirty = YES;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;
}

-(void) rotateBy: (CC3Vector) aRotation {
	[super rotateBy: aRotation];
	isForwardDirectionDirty = YES;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;
}

-(void) setQuaternion:(CC3Vector4) aQuaternion {
	[super setQuaternion: aQuaternion];
	isForwardDirectionDirty = YES;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;
}

-(void) rotateByQuaternion: (CC3Vector4) aQuaternion {
	[super rotateByQuaternion: aQuaternion];
	isForwardDirectionDirty = YES;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;
}

-(void) setRotationMatrix:(CC3GLMatrix*) aGLMatrix {
	[super setRotationMatrix: aGLMatrix];
	isForwardDirectionDirty = YES;
	isUpDirectionDirty = YES;
	isRightDirectionDirty = YES;
}

-(id) initOnRotationMatrix: (CC3GLMatrix*) aGLMatrix {
	if ( (self = [super initOnRotationMatrix: aGLMatrix]) ) {
		forwardDirection = kCC3VectorInitialForwardDirection;
		upDirection = kCC3VectorInitialUpDirection;
		worldUpDirection = kCC3VectorInitialUpDirection;
		rightDirection = kCC3VectorInitialRightDirection;
		isForwardDirectionDirty = NO;
		isUpDirectionDirty = NO;
		isRightDirectionDirty = NO;
	}
	return self;
}

// Protected properties for copying
-(BOOL) isForwardDirectionDirty { return isForwardDirectionDirty; }
-(BOOL) isUpDirectionDirty { return isUpDirectionDirty; }
-(BOOL) isRightDirectionDirty { return isRightDirectionDirty; }

// Template method that populates this instance from the specified other instance.
// This method is invoked automatically during object copying via the copyWithZone: method.
-(void) populateFrom: (CC3DirectionalRotator*) another {
	[super populateFrom: another];

	forwardDirection = another.forwardDirection;
	worldUpDirection = another.worldUpDirection;
	upDirection = another.upDirection;
	rightDirection = another.rightDirection;
	isForwardDirectionDirty = another.isForwardDirectionDirty;
	isUpDirectionDirty = another.isUpDirectionDirty;
	isRightDirectionDirty = another.isRightDirectionDirty;
}

/**
 * If needed, extracts and sets the forwardDirection from the encapsulated rotation
 * matrix. This method is invoked automatically when accessing the forwardDirection
 * property, if that property is not current (ie- if the rotation was most recently
 * set with Euler angles or a quaternion).
 */
-(void) ensureForwardDirectionFromMatrix {
	if (isForwardDirectionDirty) {
		forwardDirection = [self.rotationMatrix extractForwardDirection];
		isForwardDirectionDirty = NO;
	}
}

/**
 * If needed, extracts and sets the upDirection from the encapsulated rotation matrix.
 * This method is invoked automatically when accessing the upDirection property,
 * if that property is not current (ie- if the rotation was most recently set with
 * Euler angles or a quaternion).
 */
-(void) ensureUpDirectionFromMatrix {
	if (isUpDirectionDirty) {
		upDirection = [self.rotationMatrix extractUpDirection];
		isUpDirectionDirty = NO;
	}
}

/**
 * If needed, extracts and sets the rightDirection from the encapsulated rotation matrix.
 * This method is invoked automatically when accessing the rightDirection property,
 * if that property is not current (ie- if the rotation was most recently set with
 * Euler angles or a quaternion).
 */
-(void) ensureRightDirectionFromMatrix {
	if (isRightDirectionDirty) {
		rightDirection = [self.rotationMatrix extractRightDirection];
		isRightDirectionDirty = NO;
	}
}

-(void) applyRotation {
	[super applyRotation];
	if (matrixIsDirtyBy == kCC3MatrixIsDirtyByDirection) {
		[rotationMatrix populateToPointTowards: forwardDirection withUp: worldUpDirection];
		matrixIsDirtyBy = kCC3MatrixIsNotDirty;
	}
}

-(NSString*) description {
	return [NSString stringWithFormat: @"%@, direction: %@, up: %@, world up: %@",
			[super description],
			NSStringFromCC3Vector(self.forwardDirection),
			NSStringFromCC3Vector(self.upDirection),
			NSStringFromCC3Vector(self.worldUpDirection)];
}

@end

#pragma mark -
#pragma mark CC3LightTracker

@implementation CC3LightTracker

-(void) trackTargetWithVisitor: (CC3NodeTransformingVisitor*) visitor {
	if (target && (isNewTarget || shouldTrackTarget)) {
		self.globalLightLocation = target.globalLocation;
		LogTrace(@"%@ tracking adjusted to target", [self fullDescription]);
	}
	[self resetTargetTrackingState];
}

@end

#pragma mark -
#pragma mark CC3Node extension

@implementation CC3Node (CC3TargettingNode)

-(CC3TargettingNode*) asTargettingNode {
	CC3TargettingNode* tn = [CC3TargettingNode nodeWithName: [NSString stringWithFormat: @"%@-TargettingWrapper", self.name]];
	tn.shouldAutoremoveWhenEmpty = YES;
	[tn addChild: self];
	return tn;
}

-(CC3TargettingNode*) asTracker {
	CC3TargettingNode* tn = [self asTargettingNode];
	tn.shouldTrackTarget = YES;
	return tn;
}

-(CC3TargettingNode*) asCameraTracker {
	CC3TargettingNode* tn = [self asTracker];
	tn.shouldAutotargetCamera = YES;
	return tn;
}

-(CC3TargettingNode*) asLightTracker {
	CC3TargettingNode* tn = [CC3LightTracker nodeWithName: [NSString stringWithFormat: @"%@-LightTrackerWrapper", self.name]];
	tn.shouldAutoremoveWhenEmpty = YES;
	tn.shouldTrackTarget = YES;
	[tn addChild: self];
	return tn;
}

@end


text:
Here's Why the LaFerrari Is the $3.5 Million Ultimate Ferrari
Doug DeMuro
CHECK OUT CARS & BIDS
http://carsandbids.com
THANKS TO DAVID LEE!
https://www.instagram.com/ferraricollector_davidlee/
The LaFerrari is an incredibly special, rare, amazing supercar. Today I'm reviewing the LaFerrari, and I'm going to show you all the quirks and features of one of the best supercars ever made -- and then I'm driving the LaFerrari to show you what it's like out on the road.
WEBSITE & MERCH!
http://www.dougdemuro.com
Twitter - http://www.twitter.com/dougdemuro
Instagram - http://www.instagram.com/dougdemuro
Facebook - http://www.facebook.com/ddemuro
<iframe width="600" height="350" src="https://clipmega.com/embed?v=ngLQfhJZ7Rs" frameborder="0" allowfullscreen></iframe>
Here's Why the Koenigsegg Agera RS1..
Here's Why the McLaren F1 Is the Gr..
CHRIS HARRIS ON CARS - La Ferrari ,..
Chris Harris on Cars
The Bugatti Divo Is the $8 Million ..
2021 Audi RS7 vs 2016 Audi RS7 // S..
Throttle House
The Mercedes-Benz SLS AMG Roadster ..
LaFerrari Review | Top Gear | Serie..
Here's Why the $2 Million McLaren P..
This Ferrari LaFerrari with Straigh..
Shmee150
Here's Why the 2020 Chevy Corvett..
Here's a Tour of a $3 Million Ferra..
The Original 1992 Dodge Viper Was a..
Ferrari LaFerrari Sound Compilation..
The19Tommy85
Here's Why the Bugatti Chiron Is Wo..
The 2021 Ford Mustang Mach-E Is the..
The Ferrari F50 Is a $3 Million Sup..
Here's Why the Pagani Huayra Is Wor..
This Massive Unimog U500 Is the Ult..
The 2020 Ferrari F8 Tributo Is the ..

redpajama_set_name: RedPajamaCommonCrawl


Joshua was withdrawn, prone to outbursts of anger, reluctant to try new things and had communication challenges. Joshua's mom searched online and found the STAR Center whose therapy program was pioneered as an intensive model… so kids progress faster.
Sensory Processing Disorder affects 1 in 20 children, which is approximately one child in every classroom. Sadly, misdiagnosis is common because many health care professionals are not trained to recognize sensory issues.
The symptoms of SPD vary greatly depending upon the sense that is affected, how that sense is affected, and the severity of the condition. People with SPD misinterpret everyday sensory information, such as touch, sound, and movement. They may feel bombarded by information, they may seek out intense sensory experiences, or they may be unaware of sensations that others feel. They may have feeding and weight/growth difficulties. They may also have sensory-motor symptoms such as a weak body, clumsiness or awkwardness or delayed motor skills.
The therapist at the STAR Center spent a lot of time pushing Joshua's social limits. She engaged him in a lot of play that forced him to learn to negotiate, listen to other people's ideas and compromise. She also worked on helping him translate his thoughts into more articulate language so that he would be able to communicate better with others. She didn't punish Joshua for his misbehavior. She mentored him and tried to help him analytically understand the different outcomes of his behavior. This usually led him to self-correction and it was amazing to watch him grow through this process.
I'm here to tell you therapy helps. I for one have seen my son go from having extreme "sensory processing" issues to being a normal child after an intensive two years of so-called "sensory therapy". At the age of 3, Jethro was unable/unwilling to go near the beach, touch dirt, touch sponges, be anywhere near bubbles, creams, powder, shaving foam etc. He would vomit on sight if you showed him a bowl of cream, ice-cream, yoghurt, custard or even jelly. Meal times were a nightmare because he would begin to cry if he got any food on his clothes or hands. He would get extreme frights from even vaguely loud noises like vacuum cleaners. He would not eat any kind of sweet, jelly beans/candies, marshmallows etc- he wouldn't even touch them, and he would get sick just watching someone else eat them.
So for him, life was an unpleasant experience because he was unable to input sensory stimuli in an appropriate way.
After just under 24 months of 1-2 times a week therapy focusing on these issues, he is now able to function SO much better- for him the world is now a fun, safe place. He still doesn't eat sweets, but he can run on the beach, and eat ice-cream by the bowl-full. He has learned if his hands are dirty, he must say "may I have a cloth please." If offered jello or custard, he can say, "no thanks I don't like that." So I think for me what has been helpful is to not think of SPD as a "diagnosis" in a sense, but rather to see it in a similar light to fine/gross motor skill delays- some children will just need a bit of outside help to develop in a so-called "typical" fashion, and some things will just come less "naturally" to some than others. I think because he has been in multiple therapies (also speech and fine motor skill delays, as well as the spd, and some visual/spacial perception difficulties) I have found it easier to accept this as another of his "challenges".
I've heard statistics as high as one in six children have Sensory Processing Disorder or SPD, but it is often un diagnosed or misdiagnosed, because many children who are Autistic or have ADHD, also have SPD and probably just like me, parents brush off symptoms as nothing, or something they will grow out of, or personality.
I think it definitely can exist on it's own. I'm an adult who lives with it every day. It's so hard to explain to people who don't understand things like I can't wear a shirt that goes higher than my collar bone because it feels like I'm choking. Or that I almost always wear t-shits because long sleeves make my arms feel trapped. That socks make me want to claw my feet off because they feel wrong. Or that as much as I love the taste of peas the texture makes me want to throw up. Any mushy food does. I drive my husband nuts because if there is a single crumb in the bed I have to wipe down the whole bed. It just doesn't "feel" right.
I've never been diagnosed with any other disorder, and heck as a kid I wasn't diagnosed with SPD either, I was just considered odd. But 35 years ago they didn't diagnose it. I think I would have benefited greatly from this therapy.
Now I'm going through a similar thing w/my two-year-old boy. He, too, is terrified of the car wash and won't walk on grass barefoot, though I think this summer he might conquer that fear, since he loves to chase balls around the yard. The biggest annoyance is his resistance to getting his hair combed or his head squirted with water, which was never an issue for my daughter. He was fine with it (whimpered slightly) until about 28 months. Now he screams the minute he sees you come toward him with a comb. Consequently, he hasn't had a haircut in four months. He is also very shy and, since about 12 months, has shut his eyes around strangers so he won't have to look at them, despite having been one of the smiliest, friendliest infants who waved to everybody.
My kids don't exhibit any of the other more severe signs of SPD that would cause me to worry about them eventually reaching a "normal" state of sensory processing by kindergarten. So, for me, clinically diagnosing them and getting therapy would just be overkill. Plus, it would stress me out terribly by adding one more thing I'm supposed to try to do each week. (The clinic is a half-hour drive from my house, which would kill two hours of my day, once you figure in driving there and back, plus an appointment.) So we've just decided to work through their quirks at home and try to avoid certain activities that will cause a meltdown if they are already in a tired, cranky mood. However, sometimes we purposely introduce stimuli (like when I bought my daughter her own battery-operated, toy vacuum) to help them overcome their fears. I think for most toddlers, some amount of SPD or sensitivity is probably a normal thing and many, outgrow it. Therapy is also important.
As a mental health therapist specializing in birth to five, I worked closely with OTs and PTs on a daily basis. This new policy statement is upsetting to me on many levels (I just read it at the AAP site also). In my experience, most children with other "disorders" do have sensory processing challenges. But sensory-processing can also exist on its own. Many children would not fit well into another diagnosis, resulting in inappropriate treatment. I wonder how many pediatric developmental therapists were consulted, and why pediatricians who aren't trained in the complex sensory system would be diagnosing SPD anyway.


text:
About EERA
Season Schools
Abstracts & Papers
EUROPEAN EDUCATIONAL RESEARCH ASSOCIATION
Search ProgrammesECER 2016
Printversion
Developing Academic Communities through Fulbright Programmes
Author(s):Anne Graham Cagney (presenting), Darlene DeMarie, Elizabeth M. Pope, Kathleen deMarrais, Garry J. Crites
Conference:ECER 2016, Leading Education: The Distinct Contributions of Educational Research and Researchers
Network:22. Research in Higher Education
Format:Paper
22 SES 05 C, Academics in Academia
Paper Session
Room:NM-J109
Chair:Paul Wakeling
For many research active and engaged faculty pressure to publish and collaborate in their research is a very real struggle. Typically, faculty members have determined the nature and extent of their professional development; most often driven by career progression ambitions and research interests. Pressure for change has meant that for most research active and research engaged faculty their projects and studies now take place within a context where there is tension between the rigour, relevance and accountability in their research publications and the needs of society in general. Going forward faculty professional development will involve their ability to maintain the relevance of their research interests to their academic community; and to the practice community. This has implications for their core research, professional collaborations and inter-disciplinary orientations. Thus, understanding how these collaborations are created and maintained is invaluable.
This study aims to explore the structure of international scholarly partnerships and research collaborations and their impact on the professional development of faculty in higher education. Three key sets of research questions guide the study:
What is the underlying structure of scholarly partnerships? What are the key contributors and their networks; the development points; and promising research collaboration opportunities?
How are an individual's incentive, content and interaction dimensions of learning supported through the use of learning partnerships, academic communities of practice and social networks?
How do individual faculty members experience perspective transformation on their professional and personal identity through the social, personal and situational contexts of their scholarly partnerships and research collaboration?
This study draws on several theoretical frameworks. The Learning Partnership Model (LPM) core assumptions are that, knowledge is complex and socially constructed; the self is central to knowledge construction; and authority and expertise are shared in the mutual construction of knowledge among peers (Baxter Magolda & King, 2004, p. xxii).
Communities of practice include a domain of knowledge, a community of people who care about this domain, and a shared practice that they are developing to be effective in their domain (Lave & Wenger 1991; Wenger, McDermott and Snyder, 2002). Communities of practice thrive where the goals and needs of an organisation intersect with the passions and aspirations of the participants. Muijis, West and Ainscow (2010) emphasise the way individuals gain entry and are given opportunities to become included in the community. Oreszczyn, Lane, and Carr (2010) identify the relevance of boundaries in communities and networks of practice and Weerts and Sandmann (2010) explore how faculty evolve in their thinking and understanding in respect of the relevance of their research interests both to their academic community; and to the practice community.
Mezirow's (1991) transformative learning theory depicts ways individuals identify and challenge underlying assumptions, prompting changed perspectives that lead to taking new roles and actions. Therefore, changes in thinking that lead to new worldviews, and new perspectives on personal and professional lives (Cranton, 2006; Tennant, 2012) will inform current debate on how scholarly partnerships impact on the evolving professional identity of faculty (Beauchamp &Thomas, 2009).
In order to solve complex problems, faculty research projects must bring people with different yet complimentary skills together that require trans-disciplinary (Stokols, 2006; Pohl and Hirsch Hadorn, 2007) and cross-functional collaboration. Collaboration patterns differ among disciplines (Glanzel & De Lange, 2002) and countries (Wagner and Leydesdorff, 2005). Therefore, social relationships and social networks are important in understanding how scientific communities and scholarly partnerships are formed and how they support collaborative research projects and initiatives (Santonen and Ritala, 2014).
This study is in two phases, using a mixed methods design and purposeful sampling. Participants were selected on the basis that they have received a Fulbright award and are currently employed as faculty members. Phase I began with eighteen interviews (deMarrais & Lapan, 2004; Roulston, 2010) completed in 2015 with faculty from UGA, USF, Duke, and WIT to understand their perspectives in three areas: personal and cultural growth, professional development and social supports. We explored incidents when faculty felt they experienced personal, professional or situational growth during or after their Fulbright awards. The intent of the interviews is to deepen our understanding of participants' perspectives of the impact of their Fulbright Scholar experiences. Five further interviews are scheduled to take place (February 2016) at Duke University, UCD, NUIM and DCU.
Phase II will involve the construction of a survey informed by the interviews from Phase I. The survey portion of Phase II will be piloted with all Fulbright scholars working at UGA and USF to obtain a broader understanding of Fulbright Scholar perspectives of the key constructs of personal, cultural growth, professional development and social supports as well as any other key constructs generated from the in-depth interview studies. The last step in Phase II is to examine the initial survey to understand its effectiveness and make any necessary changes to enhance its usefulness in preparation for distribution outside of UGA and USF. The survey will then be distributed nationally to all Fulbright Scholars at UGA, USF, DUKE and Ireland.
This research involves human subjects. Each American university site has IRB approval (UGA, Duke and USF). Formal approval is pending from WIT for the Irish faculty interviews. Dr. Graham Cagney is the principle investigator for the overall project with co-investigators at each university site who are members of the faculty at each institution. Letters of invitation were issued to Dr Graham Cagney to conduct the research with her co-investigators and faculty participants.
Each university is the site of a stage in Phase I therefore no external sites are involved. Consent forms are part of the protocols submitted for IRB and ethical review: there is no external or internal funding from U.S. sources at this stage. Seed funding to support travel to initiate the IRB processes in the three American universities and to conduct research interviews was awarded to Dr Graham Cagney by the Irish Research Council 'New Foundations' programme.
Preliminary results offer insights into the first empirical study to examine the perspectives of Fulbright awardees on the impact of the experience on their learning and career development, their abilities to enhance international scholarly collaborations, and to engage in partnerships for relevant interdisciplinary research.
Results confirm the importance identified by Santonen and Ritala (2014) of making connections to several key authors who are well connected to other central scholars. Well-connected Fulbright scholars had a better experience and performed better than less well connected ones.
Problems related tendencies to geographical or institutional clustering, in addition to questions regarding how to ensure the inclusion of new members outside the current community were confirmed. Scholars' experiences were varied and limited; planning of the research project and acclimating individuals to environment and culture were problematic. In some cases faculty receiving the scholar had no idea they were coming. The results further emphasise the individualised nature of the Fulbright opportunity, and the importance of being able to survive alone.
Participants reported tendencies to 'homophily' (particularly within scientific communities) research partnerships tending to recruit and work with those who mostly share similar perspectives (McPherson et al, 2001), this being in addition to language and proximity played a key role in their ability to successfully develop of scholarly collaborations. To overcome these, some scholars sought out other opportunities, resulting in the development of scholarly relationships and partnerships with individuals, from different disciplinary backgrounds.
The study confirms an increase in individual cultural understandings and improved learning in teaching and research; and a more open attitude toward future engagement in international and inter-disciplinary research collaborations. Further analysis will test the Santonen and Ritala (2014) suggestion that a large amount of international and interdisciplinary research collaboration encourages dissemination of knowledge, capabilities and insights.
Baxter Magolda, M. & King, P.M. (2004) Learning Partnerships: Theory and models of practice to educate self-authorship, Sterling, VA: Stylus Publishing
Beauchamp, C., & Thomas, L. (2009). Understanding teacher identity: an overview of
issues in the literature and implications for teacher education. Cambridge
Journal of Education, 39(2), 175-189.
Cranton, P. (2006) Understanding and Promoting Transformative Learning. 2nd Ed.
San Francisco: Jossey-Bass.
deMarrais, K. & Lapan, S. (2004). (Eds.), Foundations for research: Methods of inquiry in education and the social sciences. Mahwah, NJ: Lawrence Erlbaum Associates.
Glanzel, W & De Lange, C. (2002). A distributional approach to multinationality measures of international scientific collaboration, Scientometrics, Vol.54, No.1 pgs 75-89
Lave, J. & Wenger, E. (1990) Situated learning: legitimate peripheral participation
(Palo Alto, CA, Institute for Research on Learning).
McPherson, JM, L, Smith-Lovin & HN Cook (2001). Birds of a feather: Homophily in social networks. Annual Review of Sociology, 27, 415-454.
Mezirow, J. (1991) Transformative Dimensions of Adult Learning, SanFrancisco: Jossey-Bass.
Muijis, D., West, M., & Ainscow, M. (2010). Why network? Theoretical perspectives on networking. School Effectiveness and Social Improvement, 21(1), 5-26.
Oreszczyn, S., Lane, A., & Carr, S. (2010). The role of networks of practice and webs
of influencers on farmers' engagement with and learning about agricultural
innovations. Journal of Rural Studies, pgs 26404-417.
Pohl, C. & Hirsch Hadorn, G (2007) Handbook of Transdisciplinary Research,
Dordrecht: Springer.
Rodgers, C.R. & Scott, K.H. (2008). The development of the personal self and
professional identity in learning to teach, Handbook of Research on Teacher
Education, 732-755
Roulston, K. (2010). Reflective interviewing: A guide to theory and practice. Los Angeles: SAGE.
Santonen, T. & Ritala, P. (2014). Social network analysis of the ISPIM innovation
management community in 2009-2011, International Journal of Innovation Management, Vol.18. No.1; February 2014.
Stokols, D. (2006). Toward a science of transdisciplinary action research, American
Journal of Community Psychology, No.38, pgs 63-77.
Tennant, M. (2012). The Learning Self: Understanding the potential for transformation, SanFrancisco: JosseyBass.
Wagner, C.S. & Leydesdorff, L. (2005). Mapping the network of global science: Comparing international co-authorships from 1990 to 2000. International Journal of Technology and Globalisation,1, pgs185-208.
Weerts, D. J., & Sandmann, L. R. (2010). Community engagement and boundary
spanning roles at research universities. Journal of Higher Education, 81(6),
Wenger, E. C., McDermott, R. & Snyder, W. M. (2002) Cultivating Communities of Practice Boston, MA, Harvard Business School Press.
Anne Graham Cagney (presenting)
Lifelong Learning & Education
Darlene DeMarie
Elizabeth M. Pope
University of Georgia, Athens, USA
Kathleen deMarrais
Garry J. Crites
Duke University, USA
© European Educational Research Association
c/o Freie Universität Berlin


text:
20may12:00 pmVirtual EventArt is a Jealous GodThe Imperative of Beauty for Human Happiness12:00 pm Event Organized By: Scala Foundation
Scala Foundation
The popular saying "beauty is in the eye of the beholder" indicates a commonly-held assumption that all art is merely subjective. In this webinar,
The popular saying "beauty is in the eye of the beholder" indicates a commonly-held assumption that all art is merely subjective.
In this webinar, IHE Fellow Margarita Mooney will consider an alternative tradition of thought with the Catholic poet and philosopher James Matthew Wilson: art makes a claim on how we should live. Their dialogue will engage with philosophers like Plato, Aristotle, Aquinas, Immanuel Kant, Edmund Burke, Russell Kirk and Jacques Maritain and writers like Dante and Umberto Eco, all of whom provide guides for how our experiences of beauty can lead to carefully considered and rational judgments which result in personal and communal flourishing.
Event organized and cosponsored with the Scala Foundation.
James Matthew Wilson is Professor of Humanities and the Founding Director of the Master of Fine Arts program in Creative Writing , at the University of Saint Thomas, Houson. An award-winning scholar of philosophical-theology and literature, he has authored dozens of essays, articles, and reviews on all manner of subjects secular and divine, and especially on those where we see the two in their intrinsic relation, as truth, goodness, beauty, and being disclose themselves in art and culture, in the political and intellectual life, in our quest for self knowledge and the contemplation of God. His scholarly work especially focuses on the meeting of aesthetic and ontological form, where the craftsmanship of art-work discloses the truth about being. He has published ten books, including six books and chapbooks of poetry. Among his volumes are: The Vision of the Soul: Truth, Goodness, and Beauty in the Western Tradition (CUA, 2017); the major critical study, The Fortunes of Poetry in an Age of Unmaking (Wiseblood, 2015); and a monograph, The Catholic Imagination in Modern American Poetry (both Wiseblood Books, 2014). His most recent books are The Strangeness of the Good (Angelico, 2020) and the poetic sequence, The River of the Immaculate Conception (Wiseblood, 2019). He was educated at the University of Michigan (B.A.), the University of Massachusetts (M.A.), and the University of Notre Dame (M.F.A., Ph.D.), where he subsequently held a Sorin Research Fellowship.
Margarita Mooney is an Associate Professor of Practical Theology at Princeton Theological Seminary, where she teaches classes such as philosophy of social science; aesthetics and education; and resilience, vulnerability and suffering. She is the Founder and Executive Director of Scala Foundation, a nonprofit organization in Princeton, New Jersey, that works to offer meaning and purpose in American education by restoring a classical liberal arts education. Professor Mooney received her B.A. in Psychology from Yale University and her M.A. and Ph.D. in Sociology from Princeton University. Prior to returning to Princeton, she was on the faculty of Sociology at the University of North Carolina at Chapel Hill and Yale University. She is the author of The Love of Learning: Seven Dialogues on the Liberal Arts (Cluny Media, 2021) and Faith Makes Us Live: Surviving and Thriving in the Haitian Diaspora (University of California Press, 2019). In addition to her scholarly publications, she has written for publications that reach wide audiences both inside and outside academia such as Real Clear Policy, Scientific American, Chronicle of Higher Education, First Things, Public Discourse, Hedgehog Review, National Catholic Register, and Church Life Journal. Much of her work can be found at www.margaritamooney.com.
(Thursday) 12:00 pm


text:
Missing woman: Can you help police find Rosemary Blackwood?
Duncan Elder
Published: 12:02 Updated: 12:11 Friday 10 May 2019
Police have said they are becoming increasingly concerned for the wellbeing of missing 47-year-old Rosemary Blackwood from the Killyleagh area.
Rosemary was last seen in the Downpatrick area at around 11am on May 6.
Rosemary Blackwood
She is described as being of average build, approximately 5'7" in height, has short brown hair and wears glasses.
"We believe Rosemary may have travelled to the Bundoran area of Donegal. It is believed she may be travelling in a White Renault Kangoo van (registration IEZ 2639)," a PSNI spokesperson said.
"We are appealing for Rosemary to make contact with police or if anyone knows of Rosemary's whereabouts please contact police at Downpatrick on 101."


This entry was posted in Destinations and tagged Ajanta and Ellora Caves, Amaltas Luxury, American Traveler, Asia Luxury Travel, Beach Vacations in Asia, Bhutan Tours, European Traveler, Hotels in Asia, Incredible India, India, Indian Heritage Tour, Indian Holidays, International Luxury Travel, ITEG Pvt. Ltd., Leisure Destinations in India, Luxury Goa, Luxury Gujarat, Luxury Maharashtra, Luxury Mumbai, Luxury Pune, Luxury Travel Guide in India, Luxury Travel to Africa, Luxury Travel to Andes, Luxury Travel to Australia, Luxury Travel to Bali, Luxury Travel to Belgium, Luxury Travel to Berlin, Luxury Travel to Brazil, Luxury Travel to California, Luxury Travel to Cambodia, Luxury Travel to Canada, Luxury Travel to Cape town, Luxury Travel to China, Luxury Travel to Cuba, Luxury Travel to Detroit, Luxury Travel to Europe, Luxury Travel to France, Luxury Travel to Germany, Luxury Travel to Greece, Luxury Travel to Hawaii, Luxury Travel to Homburg, Luxury Travel to Iceland, Luxury Travel to Israel, Luxury Travel to Italy, Luxury Travel to Madrid, Luxury Travel to Munich, Luxury Travel to Myanmar Tours, Luxury Travel to New Zealand, Luxury Travel to Ontario, Luxury Travel to Ossian, Luxury Travel to Paris, Luxury Travel to Poland, Luxury Travel to Russia, Luxury Travel to San Francisco, Luxury Travel to Sao Paulo, Luxury Travel to Singapore, Luxury Travel to South America, Luxury Travel to Spain, Luxury Travel to Sweden, Luxury Travel to Tel Aviv, Luxury Travel to Thailand, Luxury Travel to UK, Luxury Travel to Vancouver, Luxury Travel to Vegas, Luxury Travel to West Indies, Luxury West India, Osho's Ashram, Sri Lanka Tours, Tourism in India, tours in Asia. Bookmark the permalink.


text:
Mario Fiore Remembered
Posted by Patrick Reynolds | Jun 23, 2016 | Modifieds, NASCAR | 0 |
By Patrick Reynolds
A few years ago, I called Mario Fiore to ask if he would like to come on my radio show as a guest. I figured the phone conversation would be brief and could fit into time when my young daughter was brushing her teeth and getting on her PJs for bed.
Fiore fielded a team in Northeast asphalt Modified events since before I attended my first race. His familiar number 44 was a consistent entrant in the Northeast for decades before finally calling it quits in 2000. Over the years his drivers included Mike Stefanik, Rick Fuller, and one he is likely most associated with, Reggie Ruggiero.
After Fiore answered the phone, I introduced myself, told him a little bit about the show and asked him to be a guest. Fiore did not give me a short yes or no answer. He embraced the idea of doing the radio spot and was eager to come on the air. That night we talked and traded racing stories for a long time. Long enough to where Colleen became a Mario fan because she got to stay up way paste her bedtime with my extended phone call. In the years to come she would refer to Mario as "my friend that likes to talk."
I recall Fiore and me talking not like a couple of guys that just met, but like two old friends who were catching up after being separated for many years. The storytelling that night lasted far longer than the radio show segment would and I knew we were in good shape when the broadcast rolled around.
RacersReunion promoted his appearance on the show and I made many new friends from the Modified community through Mario.
During that broadcast, Fiore shared stories of his early start in the sport at Connecticut's Plainville Stadium, his Race of Champions win with Billy Pauch, the successful business model he had with his racing team, Gary Colturi, Jerry Marquis, and others. That was just what we had time for. Fiore could have filled hours of airtime.
That show was the number one rated program on the network for the week.
We kept up the communication over the years and he made a few more stops on future broadcasts to chat about Modifieds past and present. A guy I used to admire from afar and read about in the pages of Speedway Scene, was one of the easiest men to become friends with.
As I write this, Fiore passed away earlier in the day due to illness. The Northeast lost a tremendous racer.
Godspeed, Mario. Your stories were the figurative definition of bench racing. I wish we could have you on the radio just one more time. Thanks for the many, many, memories.
Patrick Reynolds is a former professional NASCAR mechanic who hosts Speedway Report Mondays 7pm ET/ 4pm PT on www.racersreunionradio.com. Follow on Twitter @SpeedwayPat.Â
PreviousWelcome Ian Moye From Chip Ganassi Racing
NextJust the Way I See It: 24 Hours of Le Mans
Patrick Reynolds watched his first auto race on June 5, 1976 at the age of seven, and instantly fell in love with the sport. His life has been deeply rooted in racing ever since. Reynolds' father took him to the Danbury Racearena in Connecticut for Saturday night stock car races. It was a one-third mile paved fairgrounds oval that featured modifieds sanctioned by the Southern New York Racing Association. This group was a private club that held a strong connection to the local community. A common weekly grandstand crowd was in the six-to-seven thousand range. The first NASCAR race Reynolds attended was in September of that same year. The Thompson 300 for modifieds was becoming very prestigious and also held in Connecticut. The five-eighths of a mile high-banked oval looked massive compared to the Danbury bullring. The event also gave him a good idea of auto racing's competition level. Big winners and track champions from the Racearena often gridded in the non-qualifier's race just to make the back of the 300's field. Geoff Bodine dominated and won that day driving for Dick Armstrong. Occasional trips to other New England and New York short tracks ensued, but Danbury remained Reynolds' home track. The Racearena sadly closed in 1981 to make way for a shopping mall. A mall he boycotts in support of auto racing. Trips to Stafford Springs, Riverside Park, Lebanon Valley and other area speedways for his racing fix now increased. He witnessed some of the best drivers from the Northeast. Richie Evans, Brett Hearn, Dave Dion, Bentley Warren, Maynard Troyer, Billy Pauch, Dick McCabe and so many others that several pages could be filled here. Reynolds' first NASCAR Grand National (now Cup) race in person was in July of 1984 at Pocono, Pennsylvania. Harry Gant won a late-race battle with Cale Yarborough and Bill Elliott to win on this day. Quite a few of stock car racing's best were in the field. State law allowed him into the Stafford pit area when he turned 16. His racing mechanic apprenticeship began with helping drivers Jimmy Broderick and Ed Flemke Jr. in the late 1980s. His dedication stretched to the point where he never attended any of his high school proms. They were held on race nights and race nights were not skipped. Reynolds went dirt racing in 1989 on Bobby Knipe's pit crew with a sportsman car at Lebanon Valley Speedway in New York. Asphalt racing was his first love but a new-found respect and appreciation for dirt racing developed. Reynolds drove his own street stock at the Orange County Fair Speedway in Middletown, NY during the early 1990s and raced a Northeast pavement late model in the later 90s. In 2001 he relocated to "Race City U.S.A." Mooresville North Carolina, planning to use his racing experience to launch a professional NASCAR career. Over the next seven seasons he worked for multiple NASCAR teams. Mechanic, fabricator, tire specialist, and over-the-wall pit crew member became new job titles. Among the drivers he worked with were Michael Waltrip, Kenny Wallace, Brian Vickers, and A.J. Allmendinger. Germain Racing and their Nationwide Series program with Mike Wallace in 2008 was the last race team job for Reynolds. The country's economic recession set in and many of his fellow Charlotte-area NASCAR professionals were downsized right out of their careers. This is what led him to the media side of the industry. The broadcasting and writing world of motorsports was always something Reynolds thought about for the future. Similar to when an ex-football player steps behind a microphone during a telecast, however his timetable was suddenly sped up. He began freelance writing for websites that covered auto racing. His radio career began with networking an opportunity onto a motorsports talk show with a local radio station. One step led to another and Speedway Report is now home. The program airs Mondays at 7:30 pm ET on RacersReunion Radio for the Zeus Radio Network and SpeedwayReport.com/TV/. The show and www.speedwayreport.com aim to keep racers and fans informed of the latest racing news while remembering and respecting the wonderful history of the sport. Since his media career began, Reynolds has won 22 awards from the American Auto Racing Writers and Broadcasters Association. Their annual breakfast presents the honors at the Brickyard Crossing golf club on the morning prior to the Indianapolis 500. He also holds the Association's secretary position and is chairman of the AARWBA annual All-America Team award committee. His new home and place in the auto racing world is embraced. Relaying experiences from nearly a lifetime on both sides of the fence is thoroughly enjoyed by Reynolds. Gone are crew chief and sponsorship politics that bounce personnel from team to team. Now he takes it upon himself to express and discuss opinions, instead of hiding them for the sake of keeping a paycheck. The family's stress from NASCAR team instability is not missed. So, welcome to Speedway Report. The written or spoken word about anything in the auto racing world has a place there. Tune in to the weekly broadcasts, listen to the archives, and read Patrick's columns. The show and accompanying website are a place for his thoughts and yours. He is glad you are along for the ride!
The Daytona 500 Without Petty or Gordon
Kenseth, Logano, and Racing Playoffs
For What It's Worth: Future NASCAR Attendance
An IMSA Race Through NASCAR Eyes
Support Your Local Track - Speedway Report With Patrick Reynolds - […] am a lover of NASCAR Modifieds and BGS is quite the entertaining evening. If we finished early enough, I…
Nobody Asked Me, But... - Speedway Report With Patrick Reynolds - […] think race cars being towed on open trailers are cool. These days even a majority of entry-level short track…


text:
France outlaws food waste in supermarkets
From left, a club wrap with french fries, churros and a Cali Alfredo pizza are among new menu items at Chuck E Cheese on Wednesday, April 8, 2015 in Irving, Texas. (Ashley Landis/The Dallas Morning News/TNS)
Eshika Kohli, Leaflet Designer
The country France has officially been the very first to announce the ban of the destruction or throwing away of unsold food in supermarkets, leaving all of the supermarkets having to donate food to charities and food banks.
All supermarkets with the size over 4,304 square feet are required to have a contract with a local charity or food bank.
Head of a network of French food banks Jacques Bailet said, "In terms of nutritional balance, we currently have a deficit of meat and a lack of fruit and vegetables. This will hopefully allow us to push for those products."
Before, many French supermarkets would trash edible foods before they even reached the best-by or sell-by dates. These dates do not refer to the date when the actual food will spoil, but to the foods' peak quality date.
Socialist MP Guillaume Garot said, "When a supermarket like Carrefour finds even a tiny fault with a crate of its branded yogurts, it sends the whole batch back to the dairy producer, which is legally obliged to destroy the lot even if it is all of excellent quality."
These donations will now result in the meals of millions of people, benefiting people globally. The law came on grassroots by local shoppers in order to expand it to the entire European Union.
Garot said, "The law makes it possible for manufacturers to give these yogurts to charities without even asking permission from supermarkets."
The average American family of four throws away $1,500 per year in groceries. The waste from this is mostly unknown due to the confusion over dates on food labels and misplaced fears that the food could come out to be unsafe.


NEWARK, NJ -- The West Orange girls basketball team avenged a January loss to Newark Tech Thursday with a 60-57 overtime victory on the road.
Senior forward Mya Bembry, a Penn State University commit, led the way for West Orange (17-3) with 29 points, 15 rebounds, three blocked shots, two assists and two steals.
Freshman guard Kiley Capstraw finished with 21 points, 10 rebounds and two steals for the Mountaineers, who had lost, 66-33, to Newark Tech (17-4) the first time the teams met. Mackenzie Dover led the Mountaineers in assists with four, and Ebony OdomBarnes grabbed six rebounds in the victory.


text:
EconomyEditor's PickNewsU.S. stock funds see first inflow in seven weeks, with $1.1 billion – Lipper
Economy2 hours ago (Oct 02, 2020 10:40PM ET)
(C) Reuters.
(Reuters) – U.S. -based equity funds attracted $1.1 billion in the week to Wednesday, the first inflow in seven weeks, according to Lipper.
At the same time, taxable bond funds shed $1.1 billion, marking the first weekly outlow since the week ended April 8, while U.S. money market funds were drawn down by $14 billion, Lipper data released on Thursday showed.
U.S. stock funds see first inflow in seven weeks, with $1.1 billion – Lipper
Exclusive: Airbnb aims to raise roughly $3 billion in IPO – sources
By Reuters – Oct 02, 2020
By Anirban Sen and Joshua Franklin (Reuters) – Home rental company Airbnb Inc is aiming to raise around $3 billion in its upcoming initial public offering (IPO), people familiar…
Big U.S. banks to report profit plunge as pandemic recession takes hold
By David Henry NEW YORK (Reuters) – As big U.S. commercial banks close their books on the third quarter, analysts expect them to report a 30% to 60% plunge in profits on the…
Activist investor Icahn brings son back, lays out succession plan
(Reuters) – Billionaire investor Carl Icahn announced the formal return of his son, Brett, to Icahn Enterprises (O:IEP) on Thursday, laying the groundwork for a handover of…
(C) 2007-2020 Fusion Media Limited. All Rights Reserved
Trian pushes Invesco, Janus Henderson to consider deals-filings
Healthcare, alternative energy drove best stock funds in third quarter


text:
Forbes.com, Forbes magazine to merge operations
Owen Thomas of ValleyWag reports that the editorial operations of Forbes.com and the print business magazine of the same name are set to merge together soon.
Thomas writes, "In New York, Forbes is housed at 60 Fifth Avenue, while Forbes.com is at 90 Fifth Avenue. Now, the publisher is said to be taking a floor at 60 Fifth to house the dotcom reporters, while it clears out 'deadwood long-timers.' The new mandate: Everyone will write for both Web and print. Which sounds sensible — unless you work at Forbes.
"What Forbes is not planning to announce: What sounds like a merger is really a takeover — by Forbes.com. Jim Spanfeller, the publisher of Forbes.com, will run the combined operation. 'It's a massive coup, one that print people have long seen coming and long feared,' says our tipster. As well they should: The editors of Forbes have long looked down on their Web brethren. Now they will be working for them.
Forbes, Job changes, Websites


Unable to shake our tattered climber image, we were stopped several times for advice on how to approach "Snake Dike", the classic 5.7 line up the west side of Half Dome. Each time they asked if we were "headed up," assuming Half Dome. When we responding, "Mt Clark", they looked at us quizzically and said, "Uh, where's that?" We responded in a vague direction pointing "that way". Better left unsaid. We smiled, headed on our way and quickly lost the crowds.
A scenic hike along the rushing waters of the Merced River led through a majestic canyon of near vertical granite domes. We followed the well established trail for 6 miles or so after leaving the Half Dome seeking crowds behind at Little Yosemite Valley. Departing from the trail at its high point on the south side of the Merced River just past Bunnell Point, we headed up the first of three steep drainages leading southeast to Mt. Clark. The guidebook recommends following the second, or middle, drainage up through Clark Canyon; however, John returned this way and recommends our original deviation up the first drainage as a "much cleaner and easier" approach. The bridge between the first and second drainage (located near the northern bend) was completely washed away this winter. This makes our recommendation even more enticing, because it totally circumvents the need to cross the bridge. Not to mention being shorter!
For those of you interested in approaching this way, stay in the drainage and follow easy, but steep, hiking up boulders and scree through the old growth pine trees. If you deviate too much you will end up in "bush whacking hell". The drainage eventually eases off after 1,000 feet of elevation gain. Keep following the drainage up through the forest until it ends in a beautiful lake at a break in the broad toe of the NW Ridge of Mt. Clark. Excellent camping may be found here. You may gain the ridge directly above (southeast) the lake or traverse eastward then southward into Clark Canyon.
We stopped a bit early and camped at 10k in Clark Canyon for the night after John started feeling ill due to altitude and overall fatigue. He had given it a good run-for-the-money, but was generally not in shape for such a demanding hike. About 6K feet and 15 miles.
From our vantage point, Mt. Clark rose like an impenetrable medieval fortress guarded on it north flank (cirque) by sheer 1,000' walls of granite. The knife edge NW ridge curved around from the west like a treacherous staircase leading to the summit thrown. It's a striking peak well hidden from the usual traffic of Yosemite. From Northern Yosemite peaks, Mt. Clark can be easily identified by its unique pyramid shaped peak thrusting out of the surrounding terrain.
After a brisk night of sub freezing temperatures, we arose at dawn to get an early start. I had packed light, planning on testing a down jacket/bivy bag approach to lightweight bivouacking, but unfortunately did not plan on the freezing temperatures or spending the night at 10k'. I totaled about an hour of sleep that night. Most of it in front of a fire I had to continually stoke to stay warm. Live and learn. John promptly decided to head back down after sizing up the peak and his present condition. We discussed splitting up and decided that it would be ok. He would head down Clark Canyon and I would head up and then descend down the western slopes to complete a round trip. The ridge looked dicey, but hey, the "guide" said 4th class! I'll give it a go. I kicked in the thin sheet of ice that had frozen over the local water supply, a deep puddle in a nearby granite slab, and pumped up my bottle to full.
After gaining the ridge via a steep rocky chute, I followed the contour of the ridge on class 2 terrain along side the eastern vertical drop-off. As the ridge snaked east (the ridge formed an "S"), it quickly became technical. The obvious line dropped below the ridge proper, which was well above 4th class and extremely exposed, and into the bushy scree and rocky slopes adjacent to the exposed ridge. Being solo, I chose this route and followed 2 day old boot tracks up the ridge toward the summit. I couldn't tell if the standard NW Ridge route was suppose to follow the apex of the ridge, but it appeared like way too much 5th class climbing to be the standard 4th class route.
Easy ground ended abruptly at a steep snow field, which was now solid ice. The snow/ice field appeared to block the easiest ground, leaving me with a limited range of options. I made 4 different attempts at free climbing the ridge proper in my Nike Lava Domes, but maxed out into 5.6/5.7 slabby sections each time about 60 feet up. This just wasn't 4th class climbing, even by the old rules! And there was no sign of any climbing activity. I could see the summit a couple hundred yards away, enticing me. I could push through the moderate to easy 5th class, but down climbing would have been another story. The risk-benefit ratio wasn't worth it. It just didn't feel right. I bailed.
In my obsessive determination though, I sighted one more line of weakness on the other side (south) of the ice field up a spur in the ridge. This would be my last try. I dropped my pack and started up. Pulling through a short section of vertical rock on very positive holds I spotted a rappel sling in my path. Right on! I continued up reaching 4th class scrambling until it again quickly approached 80 degrees on semi-featured granite. Climbing past more rappel slings, I followed up one of many crack/flake systems to gain the final 5 foot wide knife-blade ridge leading to the summit block and register. There, I found a fantastically exposed summit delivering expansive views of the Yosemite High country and the many crests surrounding the area: Cathedral Peak, Cockscomb, Unicorn, Echo Peaks, Tuolumne Peak, Lyle, Electra, the Minarets, Ritter/Banner, Conness and of course Gray and Red peak directly to the south.
I retraced my steps down climbing and continued descending the western slopes of Mt. Clark on granite slabs and scree through the serene mixed pine forests. Roughly 6 miles of cross country travel, leading through a couple thick bogs and fire damaged/log strewn sections in the low lands brought me to the Merced Pass trail along Illilouette Creek. Ten more miles of trial walking along Mt. Starr King and its sister domes led me down to Nevada Falls and back to the world of international tourism. I jogged down the pack trail to find John waiting patiently at the truck. He completed his journey by wandering upon a granddaddy black bear a mile upstream from Little Yosemite Campground.


text:
Home POP CULTURE Music Find Out What The Difference Between A Single, An EP, A Mixtape...
Find Out What The Difference Between A Single, An EP, A Mixtape And An Album Is.
With all these categories of music flying around its easy to be confused. "What is it that makes a mixtape different from an LP ?" And "what at all is an EP?" Would most likely be lying in the FAQ box in World Music Ministry, if there was one. Along with "who made Iggy Azalea a rapper?".
So, let's address one of the many problems plaguing our generation… then after we can move on the global warming and banning Uggs.
Single / Track: A single is a song released separately from an album, although sometimes it appears on an album. Singles are released specifically for promotional purposes. Usually, because they are perceived to be the most popular off the album.
A single could be one song, or according to Music streaming site iTunes, three songs under 20 minutes could be a single. Adele's "Hello" is a good example of a single, as well as EL's All Black with Pappy Kojo and Joey B for his B.A.R.
Which brings us to the next most confusing term in Music now…
Mixtape: After Drake's release of If You're Reading This blah blah blah (IYRTITL) a lot of people can't be sure if it was a mixtape or an album. Mixtapes were originally DJ mixed compilations of songs that complement radio and club play. Then, it became an all-star line up of Emcees spitting bars over a number of familiar beats. Then, it became a single crew spitting bars over familiar beats. Then, it became a single artiste spitting bars on unfamiliar beats.
Mixtapes are released solely for promotional purposes and are usually free. The purpose of mixtapes is to attract new fans and keep the old ones talking. Although Mixtape releases usually do not follow label recommendations, Drake's IYRTITL was released commercially through his record label, but the 6 god refers to the project as a mixtape. What do we know… we are but pencils …
EP, also Extended Playlist, was originally born in the period of vinyl. An EP was a 7-inch vinyl record that could hold more music than singles. Now, an EP, according to the Recording Industry Association of America is a record with three to five songs or music under 30 minutes. Technically, an EP is longer than a single but shorter than an LP. FKA Twigs M3LL155X is an example of an EP released this year.
An LP, though you don't hear that anymore, is a Long Playlist. An LP has more than four tracks and is longer than 25 minutes. This is according to the UK Album Charts. An LP is what we currently refer to as Albums.
Source: Harmattan Rain
Difference between EP Album Mixtape
Ghanaian Music
Previous articleJurgen Klopp Reveals His Favourite To Win This Season's Champions League
Next articleTwitter Reacts To Coach Opeele's Comment On The Reaction Of Black Players To Racist Abuse
Watch Out For NYA And Her Debut Single, "Choke"
7 Songs You Should Definitely Listen To On E.L's #BAR6


text:
Mixed Media: Leilani Latu
Wed 12 Apr 2017, 11:42 AM
Leilani Latu has thrown his support behind Matt Moylan as the Panthers captain returns to the NRL side following his brief stint in the Intrust Super Premiership.
Moylan, along with Peta Hiku and Waqa Blake, were stood down for disciplinary reasons following the loss in Melbourne a fortnight ago. The trio have been named in the 21-man squad to tackle Cronulla Sharks on Sunday.
Latu praised the skipper's reaction as the team returned to the training field this week.
"Moyza (Moylan) is a great leader," Latu said.
"Myself and the team are 100% behind him. We see him at training and from all signals he's doing well.
"He's very vocal and he shows us the way and where we need to be. That's all we can ask from a captain and he's doing that at training."
The return of those players, along with James Fisher-Harris and Tyrone Peachey, will provide a huge boost for the side as they look to improve on their early season form.
Despite winning just two of their opening six matches, Latu insisted there is no reason for panic.
"We were in the same predicament last year," he said.
"The positive that we can take out of it is what we can improve on, rather than gain more wins but find mistakes at the back end of the season.
"From that standpoint it's a good opportunity to go back to basics and realise where our mistakes are and what we can improve on.
"Our main focus right now is to take one game at a time, one day at a time."