text:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tonegod.gui.controls.lists;

import com.jme3.math.FastMath;
import com.jme3.math.Vector2f;
import com.jme3.math.Vector3f;
import com.jme3.math.Vector4f;
import com.jme3.scene.Geometry;
import com.jme3.scene.Mesh;
import com.jme3.texture.Texture;
import java.util.ArrayList;
import java.util.List;
import tonegod.gui.controls.buttons.ButtonAdapter;
import tonegod.gui.core.Element;
import tonegod.gui.core.ElementManager;
import tonegod.gui.core.ElementQuadGrid;
import tonegod.gui.core.utils.UIDUtil;
import tonegod.gui.effects.Effect;

/**
 *
 * @author t0neg0d
 */
public abstract class Dial extends ButtonAdapter {
	Element elCenter, elPosition, elIndicator;
	protected List<Object> stepValues = new ArrayList();

	int selectedIndex = 0;
	boolean isStepped = false;
	float stepSize = 1;
	float currentAngle = 0;
	float startGap, endGap, totalGap, totalSize;

	float minDegrees = 0;
	float maxDegrees = 359;

	Texture indicatorTex;

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 */
	public Dial(ElementManager screen) {
		this(screen, UIDUtil.getUID(), Vector2f.ZERO,
			screen.getStyle("Dial").getVector2f("defaultSize"),
			screen.getStyle("Dial").getVector4f("resizeBorders"),
			screen.getStyle("Dial").getString("defaultImg")
		);
	}

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 */
	public Dial(ElementManager screen, Vector2f position) {
		this(screen, UIDUtil.getUID(), position,
			screen.getStyle("Dial").getVector2f("defaultSize"),
			screen.getStyle("Dial").getVector4f("resizeBorders"),
			screen.getStyle("Dial").getString("defaultImg")
		);
	}

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 */
	public Dial(ElementManager screen, Vector2f position, Vector2f dimensions) {
		this(screen, UIDUtil.getUID(), position, dimensions,
			screen.getStyle("Dial").getVector4f("resizeBorders"),
			screen.getStyle("Dial").getString("defaultImg")
		);
	}

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 * @param resizeBorders A Vector4f containg the border information used when resizing the default image (x = N, y = W, z = E, w = S)
	 * @param defaultImg The default image to use for the Dial's background image
	 */
	public Dial(ElementManager screen, Vector2f position, Vector2f dimensions, Vector4f resizeBorders, String defaultImg) {
		this(screen, UIDUtil.getUID(), position, dimensions, resizeBorders, defaultImg);
	}

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 * @param UID A unique String identifier for the Element
	 * @param position A Vector2f containing the x/y position of the Element
	 */
	public Dial(ElementManager screen, String UID, Vector2f position) {
		this(screen, UID, position,
			screen.getStyle("Dial").getVector2f("defaultSize"),
			screen.getStyle("Dial").getVector4f("resizeBorders"),
			screen.getStyle("Dial").getString("defaultImg")
		);
	}

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 * @param UID A unique String identifier for the Element
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 */
	public Dial(ElementManager screen, String UID, Vector2f position, Vector2f dimensions) {
		this(screen, UID, position, dimensions,
			screen.getStyle("Dial").getVector4f("resizeBorders"),
			screen.getStyle("Dial").getString("defaultImg")
		);
	}

	/**
	 * Creates a new instance of the Dial control
	 *
	 * @param screen The screen control the Element is to be added to
	 * @param UID A unique String identifier for the Element
	 * @param position A Vector2f containing the x/y position of the Element
	 * @param dimensions A Vector2f containing the width/height dimensions of the Element
	 * @param resizeBorders A Vector4f containg the border information used when resizing the default image (x = N, y = W, z = E, w = S)
	 * @param defaultImg The default image to use for the Dial's background image
	 */
	public Dial(ElementManager screen, String UID, Vector2f position, Vector2f dimensions, Vector4f resizeBorders, String defaultImg) {
		super(screen, UID, position, dimensions, resizeBorders, defaultImg);

		removeEffect(Effect.EffectEvent.Hover);
		removeEffect(Effect.EffectEvent.Press);
		removeEffect(Effect.EffectEvent.LoseFocus);

		startGap = minDegrees;
		endGap = 359-maxDegrees;
		totalGap = startGap + endGap;
		totalSize = 359-totalGap;

		elCenter = new Element(
			screen,
			UID + ":Center",
			new Vector2f((getWidth()/2), -(getHeight()/2)),
			new Vector2f(dimensions.x, dimensions.y),
			new Vector4f(0,0,0,0),
			screen.getStyle("Common").getString("blankImg")
		);
		((Geometry)elCenter.getChild(0)).center();
		elCenter.setScaleNS(false);
		elCenter.setScaleEW(false);
		elCenter.setDockS(true);
		elCenter.setDockW(true);
		elCenter.setIgnoreMouse(true);
		addChild(elCenter);

		elIndicator = new Element(
			screen,
			UID + ":Indicator",
			new Vector2f(-1,getHeight()/2),
			new Vector2f(5, 5),
			new Vector4f(0,0,0,0),
			screen.getStyle("Dial").getString("radialImg")
		);
		((Geometry)elIndicator.getChild(0)).center();
		elIndicator.setScaleNS(false);
		elIndicator.setScaleEW(false);
		elIndicator.setDockS(true);
		elIndicator.setDockW(true);
		elIndicator.setIgnoreMouse(true);
		elCenter.addChild(elIndicator);

		setStepSize();
		setInterval(100);
	}

	public Element getDialCenter() {
		return this.elCenter;
	}

	public Element getDialIndicator() {
		return this.elIndicator;
	}

	/**
	 * Sets the angle at which the minimum rotation of the dial will start (0 being the bottom)
	 * @param angle float
	 */
	public void setGapStartAngle(int angle) {
		if (angle < 0) angle = 0;
		minDegrees = angle;
		startGap = minDegrees;
		endGap = 359-maxDegrees;
		totalGap = startGap + endGap;
		totalSize = 359-totalGap;
		setStepSize();
	}

	/**
	 * Sets the angle at which the maximum rotation of the dial will stop (359 being the bottom)
	 * @param angle float
	 */
	public void setGapEndAngle(int angle) {
		if (angle > 359) angle = 359;
		maxDegrees = angle;
		startGap = minDegrees;
		endGap = 359-maxDegrees;
		totalGap = startGap + endGap;
		totalSize = 359-totalGap;
		setStepSize();
	}

	/**
	 * Adds a step value to the Slider.  When 2 or more step values are associated with
	 * a Dial, the rotation becomes stepped and advances to the next/previous slot
	 * position as the mouse is moved.  Each slot added has an associated value that is
	 * returned via the onChange event or getSelectedValue() method.
	 *
	 * @param value The string value to add for the next step.
	 */
	public void addStepValue(Object value) {
		stepValues.add(value);
		if (stepValues.size() >= 2) {
			isStepped = true;
			setStepSize();
		}
	}

	/**
	 * Removes a step value by the value originally added.
	 *
	 * @param value The string value of the step to be removed.
	 */
	public void removeStepValue(Object value) {
		stepValues.remove(value);
		if (stepValues.size() < 2) {
			isStepped = false;
			setStepSize();
		}
	}

	/**
	 * Sets the Dial's rotating indicator image
	 * @param imgPath String Path to image
	 */
	public void setDialImageIndicator(String imgPath) {
		if (screen.getUseTextureAtlas()) {
			indicatorTex = screen.getAtlasTexture();
			float[] coords = screen.parseAtlasCoords(imgPath);
			float textureAtlasX = coords[0];
			float textureAtlasY = coords[1];
			float textureAtlasW = coords[2];
			float textureAtlasH = coords[3];

			float imgWidth = indicatorTex.getImage().getWidth();
			float imgHeight = indicatorTex.getImage().getHeight();
			float pixelWidth = 1f/imgWidth;
			float pixelHeight = 1f/imgHeight;

			textureAtlasY = imgHeight-textureAtlasY-textureAtlasH;

			Mesh model = new ElementQuadGrid(this.getDimensions(), borders, imgWidth, imgHeight, pixelWidth, pixelHeight, textureAtlasX, textureAtlasY, textureAtlasW, textureAtlasH);

			elCenter.getGeometry().setMesh(model);
			elCenter.getGeometry().center();
		} else {
			indicatorTex = screen.getApplication().getAssetManager().loadTexture(imgPath);
			indicatorTex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps);
			indicatorTex.setMagFilter(Texture.MagFilter.Bilinear);
			indicatorTex.setWrap(Texture.WrapMode.Repeat);
		}
		elCenter.getElementMaterial().setTexture("ColorMap", indicatorTex);
	}

	/**
	 * Sets the Dial's background image
	 * @param imgPath String Path to image
	 */
	public void setDialImageBackground(String imgPath) {
		Texture tex = screen.getApplication().getAssetManager().loadTexture(imgPath);
		tex.setMinFilter(Texture.MinFilter.BilinearNoMipMaps);
		tex.setMagFilter(Texture.MagFilter.Bilinear);
		tex.setWrap(Texture.WrapMode.Repeat);

		getElementMaterial().setTexture("ColorMap", tex);
	}

	private void setStepSize() {
		if (stepValues.size() >= 2)
			stepSize = totalSize/(stepValues.size()-1);
		else
			stepSize = totalSize/100;
	}

	private float getStepAngle(float angle) {
		angle += 180-startGap;

		int nIndex;
		if (stepValues.size() >= 2) {
			nIndex = (int)Math.round(angle/stepSize);
			if (nIndex >= 0 && nIndex < stepValues.size() && nIndex != this.selectedIndex)
				setInternalIndex(nIndex);
		} else {
			nIndex = (int)Math.round(angle/stepSize);
			int finIndex = (int)Math.round(nIndex);
			if (finIndex != this.selectedIndex)
				setInternalIndex(finIndex);
		}

		return (nIndex*stepSize)-180+startGap;
	}

	/**
	 * Sets the selected index for both free-floating and stepped Dials
	 * @param index float
	 */
	public void setSelectedIndex(int index) {
		float angle;
		if (isStepped) {
			if (index < 0) index = 0;
			else if (index > stepValues.size()-1) index = stepValues.size()-1;
			selectedIndex = index;
			angle = index*stepSize-180+startGap;
		} else {
			if (index < 0) index = 0;
			else if (index > 100) index = 100;
			selectedIndex = index;
			angle = index*stepSize-180+startGap;
		}
		elCenter.setLocalRotation(elCenter.getLocalRotation().fromAngleAxis(-(angle*FastMath.DEG_TO_RAD), Vector3f.UNIT_Z));
	}

	/**
	 * Sets the selected index for both free-floating and stepped Dials
	 * @param index float
	 */
	public void setSelectedIndexWithCallback(int index) {
		float angle;
		if (isStepped) {
			if (index < 0) index = 0;
			else if (index > stepValues.size()-1) index = stepValues.size()-1;
			setInternalIndex(index);
			angle = index*stepSize-180+startGap;
		} else {
			if (index < 0) index = 0;
			else if (index > 100) index = 100;
			setInternalIndex(index);
			angle = index*stepSize-180+startGap;
		}
		elCenter.setLocalRotation(elCenter.getLocalRotation().fromAngleAxis(-(angle*FastMath.DEG_TO_RAD), Vector3f.UNIT_Z));
	}

	/**
	 * For use with free-floating Dials - Sets the selected index of the Dial
	 * @param index float A range from 0.0 to 100.0 for a more accurate representation of the angle desired
	 */
	public void setSelectedIndex(float index) {
		float angle;
		int index1 = (int)Math.round(index);
		if (isStepped) {
			if (index1 < 0) index1 = 0;
			else if (index1 > stepValues.size()-1) index1 = stepValues.size()-1;
			this.selectedIndex = index1;
			angle = index1*stepSize-180+startGap;
		} else {
			if (index1 < 0) index1 = 0;
			else if (index1 > 100) index1 = 100;
			this.selectedIndex = index1;
			angle = index*stepSize-180+startGap;
		}
		elCenter.setLocalRotation(elCenter.getLocalRotation().fromAngleAxis(-(angle*FastMath.DEG_TO_RAD), Vector3f.UNIT_Z));
	}

	/**
	 * For use with free-floating Dials - Sets the selected index of the Dial
	 * @param index float A range from 0.0 to 100.0 for a more accurate representation of the angle desired
	 */
	public void setSelectedIndexWithCallback(float index) {
		float angle;
		int index1 = (int)Math.round(index);
		if (isStepped) {
			if (index1 < 0) index1 = 0;
			else if (index1 > stepValues.size()-1) index1 = stepValues.size()-1;
			setInternalIndex(index1);
			angle = index1*stepSize-180+startGap;
		} else {
			if (index1 < 0) index1 = 0;
			else if (index1 > 100) index1 = 100;
			setInternalIndex(index1);
			angle = index*stepSize-180+startGap;
		}
		elCenter.setLocalRotation(elCenter.getLocalRotation().fromAngleAxis(-(angle*FastMath.DEG_TO_RAD), Vector3f.UNIT_Z));
	}

	/**
	 * Returns the text value of the current selected step.
	 *
	 * @return String stepValue
	 */
	public int getSelectedIndex() {
		return selectedIndex;
	}

	/**
	 * Sets the Dial's selected index to the selected step index specified and
	 * rotates the Dial to appropriate angle to reflect this change.
	 *
	 * @param selectedIndex The index to set the Dial's selectedIndex to.
	 */
	private void setInternalIndex(int selectedIndex) {
		this.selectedIndex = selectedIndex;
		if(isStepped)	onChange(selectedIndex, stepValues.get(selectedIndex));
		else			onChange(selectedIndex, selectedIndex);
	}

	/**
	 * Event called when the Slider's selectedIndex changes.
	 *
	 * @param selectedIndex The Slider's current selectedIndex
	 * @param value The string value associated with this index
	 */
	public abstract void onChange(int selectedIndex, Object value);

	@Override
	public void onButtonStillPressedInterval() {
		currentAngle = (float)Math.atan2(screen.getMouseXY().x-elCenter.getAbsoluteX(), screen.getMouseXY().y-elCenter.getAbsoluteY())*FastMath.RAD_TO_DEG;

		if (currentAngle < -(180-startGap))
			currentAngle = -(180-startGap);
		else if (currentAngle > (180-endGap))
			currentAngle = (180-endGap);

		float angle = Float.valueOf(currentAngle);

		angle = getStepAngle(angle);

		elCenter.setLocalRotation(elCenter.getLocalRotation().fromAngleAxis(-(angle*FastMath.DEG_TO_RAD), Vector3f.UNIT_Z));
	}
}


Camping de la Cité**** is aptly named.
He's located at the bottom of the famous Medieval City and 3 km from the Canal du Midi, 2 UNESCO World Heritage sites. The campsite welcomes you to a flat, grassy area, with partially shaded pitches marked by hedges. The campsite also has a Mobile home "Wellness" (Spa and Sauna) and two swimming pools (a large pool and a small pool with paddling pool) with slides.
Lovers of nature, sports, history and relaxation, will find their account!
At 10 minutes from Lac de la Cavayère, 60 minutes from the beaches and south of the Montagne Noire, Camping de la Cité will be the ideal starting point for new discoveries.
The reception is open continuously from 8:00am to 8:00pm and from 8:00am to 9:00pm (July / August).
For arrivals pitches, we welcome you every day from 1pm to 8pm in Low season* and from 1pm to 9pm in High season**.
For arrivals Mobil-homes, we welcome you every day from 4pm to 7:30pm in Low season* and from 4pm to 8:30pm in High season**.
*Low season: From 01 April to 05 July and from 24 August to 27 October.
**High season: From 06 July to 23 August.
Accessible for all disabled persons.
Minors unaccompanied by their parents are not accepted on the campsite.


text:
[Books] The Unifying Force (The New Jedi Order Book 19)
I finally did it! After years of reading the books (on and off, I admit), I finally worked my way through all 19 full novels and 3 of the ebook short stories that span The New Jedi Order series of Star Wars novels. It certainly took a lot of time and effort and quite a bit of book-hunting as well (yes, I admit I own paperback copies of all of the books) but now it's finally over.
It's kind of creepy to think that I first started reading these books in my high school / college days and only finished it now. That's quite a long period of time.
This review is primarily meant to discuss the final book in the series - The Unifying Force, although it will be inevitable that this will lead to other discussions on the series as a whole. After all, the final chapter in any extended story is meant to tie up loose ends from other parts of the series and leave us with a sense of closure at the end of things.
And to be fair, this was quite the ending. While the last few books leading up to the grand conclusion of things were rather lackluster in terms of writing and general substance, this last book felt more in tune with the rest of the series and did a fairly decent job of ending the whole story on a decent enough note.
Plus things made sense, too. And one can only imagine how difficult a challenge it is to achieve that kind of an end across so many different books as written by so many different authors.
The Unifying Force is the 19th and final book in the Star Wars New Jedi Order series of books. It was written by James Luceno, who also wrote the prior NJO books Agents of Chaos I & II.
The book picks up the story at a somewhat weird location - a Yuuzhan Vong POW camp on the planet Selvaris. While the Yuuzhan Vong don't typically take prisoners, the direction of the war has also strained their resources, making the camp a necessity. The Galactic Alliance prisoners have a tenuous peace with Malik Carr, the overseer of the prison but naturally tensions remain high. And things come to a head when a coded message comes to the prisoners through the Ryn network. Thus they execute a plan to get the message off-world to whoever would be crazy enough to mount a rescue mission, such as a maverick pilot known as Han Solo and the Millennium Falcon.
Meanwhile, the sentient world known as Zonoma Sekot continues to jump through hyperspace after Nom Anor's failed sabotage attempt during the last novel. Luke Skywalker and the other Jedi on the planet do their best to weather the stresses of a planet traveling through hyperspace while they deal with former High Priest Harrar, who somehow managed to survive Nom Anor's attempt to kill him as well. There they work together to unravel more of Zonoma Sekot's mysterious and perhaps figure out a way to win the war.
And things do come to a head in this book. Knowing that the war can swing to the advantage of either side in a heartbeat, the Yuuzhan Vong have assembled a massive armada of ships pulled from all systems that they occupy in attempt to destroy the temporary seat of government of the Galactic Alliance at Mon Calamari. And even with the support of new allies in the form of the Imperial Remnant, the Hapes Consortium and other groups, they're still massively outnumbered by the assembled Yuuzhan Vong forces at Yuuzhan'tar, formerly known as Coruscant.
The opening story arc on Selvaris definitely had strong resonance with previous POW stories I've encountered. If anything, it was definitely more like The Bridge on the River Kwai or The Great Escape versus a story like King Rat , for example. And I did enjoy how it totally broke from the previous storylines that we had been dealing with, which had gotten rather tiring in recent books.
Image by GogDog via Flickr
The military side of this book was pretty good, especially for a Star Wars novel. We had a great combination of ship-to-ship action, massive fleet maneuvers and strategems, and of course some on-the-ground commando work to book. Luceno did a pretty impressive job of managing all those diverse elements and making sure we ended up with a story that still made sense from a military strategy perspective.
The Zonoma Sekot side of things was still a bit wonky and I don't think the creative team really had a good idea of what they wanted to accomplish with this living planet. While its arrival at Coruscant was pretty dramatic, for the most part it just sort of stayed on the bench in this "game" of sorts. And in the end the only role it could play well was being the continuity janitor who would clean up the loose ends at the end. Seriously.
The attempt to further refine established understanding of the Force, especially in the context of these Yuuzhan Vong who seem to be invisible or absent from the Force was pretty good, I have to admit. In pat books there was a lot of meandering philosophizing that just didn't go anywhere. But Luceno managed to bring a lot of the earlier speculations and arguments into focus and ended up with a pretty interesting view of what the Force truly is. Plus as the characters got on board with this more complete philosophy, they got to totally kick butt during combat.
I do feel a bit sad for Tahiri, who had been developing into quite the major character over the past few books only to end up in the backseat practically just watching. Sure, she participated in the final battle and did her share, but her unique dual nature as both human and Yuuzhan Vong (through Riina) didn't play as big a role as I had expected it too. And that sort of sucked, when you really think about it.
And the big twist in the end about Supreme Overload Shimrra? Well, I won't spoil it for you, but I will admit that it was decently executed, even if it had been a tad predictable to some extent.
The Unifying Force was definitely a great way to end this series and one that helped redeem some of the more shallow books that had been part of the run. I'm still glad that I took the time to read the books and I remain rather impressed with what the creative team achieved over the course of the 19 books. Thus this title fully deserves 4 somewhat silly moments of the Jedi piloting Sekotan ships rather badly out of a possible 5.
Tags: books, geekdom, reviews, sci-fi, star wars

redpajama_set_name: RedPajamaCommonCrawl


YPAT is an intensive, 7 day residential program for young people interested in learning more about their culture and the political processes of Australia. It is based off Judeo-Christian values and encourages delegates to consider the world from a viewpoint that supports Christian Social Teaching.
When & where does YPAT take place?
YPAT will take place in Western Sydney from Sunday 23 June – Saturday 29 June 2019 (dates subject to change).
Who can apply to attend YPAT?
Any young person aged between 18 – 30 who has an interest in today's social and/or political culture.
How much does YPAT cost?
The total cost required to fully provide for one person's stay at YPAT is approximately $1,600 to $1,800. However, thanks to some generous sponsors, we are able to offer the program for just $450 per person for the week.
A $90 refundable (in some circumstances) deposit is required to secure your place.
If you are interested in becoming a sponsor, please click here or email info@ypat.com.au .
Why does YPAT last a week?
To provide a comprehensive and in-depth understanding of the different issues that impact modern Australia, the YPAT experience lasts a week (Sunday to Saturday).
Each day is themed around a certain aspect of today's culture. Speakers, activities and workshops are carefully scheduled to provide an overall solution based view of the selected topic.
The time period allocated also allows each delegate to reflect and consider how to implement these solutions within their own communities.
In addition, a week provide the opportunity for participants to really get to know the other delegates and mentors, forming lifelong connections and future working relationships.
How many people come to YPAT?
The number of delegates is strictly limited. We accept a maximum of 30 delegates to the YPAT experience each year. Please note that places may be filled before the cut off date.
This small number of participants ensures that delegates receive individual attention and mentoring by our leaders and speakers, with each person being involved in the learning process to the maximum of their capability. It also ensures close friendships are formed by all group members.
I don't know anyone at YPAT. Will I make friends?
We find that the environment at YPAT, where similar minded people come together to grow and develop over the course of one life changing week, is an ideal environment to make new friends and connections.
Many of our alumni report that they are now working closely with fellow delegates on both personal and professional projects.
'Get to know you' activities, communal meals and small class sizes mean there is plenty of opportunity for delegates to get know one another.
I'm not interested in politics. What will YPAT have for me?
YPAT is not just about politics. It's about a deeper understanding of the cultural and social influences of today's society. If you are interested in making a tangible difference in today's world and meeting others who wish to do the same, then you will enjoy YPAT.
I'm not religious. Will I still find enjoy the week?
We do accept applications from those who are not of faith and have a limited number of positions available for those who are accepted. We ask only that you remain respectful and considerate of the speakers and fellow delegates.
I've been to YPAT before. Can I come again?
Absolutely! With a wide range of speakers, new traditions and a fresh group of delegates every year, you will undoubtedly find much to enjoy during a second YPAT experience. Please note on your application if you have been to YPAT before so we can ensure we give you the best experience possible.
You can apply to attend YPAT by filling out this form.
A member of our team will be in touch with you shortly to inform you of the next steps.
Be aware that capacity for delegates is strictly limited due to the personalised nature of the event and that places may be filled prior to the cut off date.
Thank you for your support of Australia's future.


text:
Smart cities initiative tests in-building IoT in active shooter exercise
By Stephanie Kanowitz
More than 70 first responders tested a new collaboration system that featured real-time video sharing, advanced building sensors and smart-building technologies in a Nov. 18 exercise designed to prepare for active-shooter scenarios and other disasters, both manmade and natural.
Led by the Center for Innovative Technology (CIT) Smart City IoT Innovation Labs in Virginia and powered by technology from Mutualink, a provider of interoperability solutions for first responders, the active-shooter exercise at George Mason University's Eagle Bank Arena in Fairfax successfully demonstrated faster, more effective emergency response capabilities.
The company deployed its Internet of Public Safety Things (IoPST) network and technologies throughout the arena to test how they would support public safety and response effectiveness in emergencies. Sensors and cameras connected to the network provided situational awareness, and the data was shared securely in real time with mutual-aid partners, enabling the creation of real-time video and data visualizations within an interactive map-based floorplan interface.
Sensors and displays from other partners supported the testing of Wi-Fi detectors, blue-force tracking, LiDAR occupancy detectors, particulate and environmental sensors along with 2D/3D visualization tools. Datakwip supplied the analytics platform, EcoDomus created a digital twin of the facility, and InnerSpace provided its Wi-Fi-based indoor location platform, including first-responder tracking capabilities.
Everything was integrated into a single sensor platform that supported facility analytics and automated alerting, according to a statement from the Department of Homeland Security, whose Smart City Initiative funded the event.
"This event demonstrates what homeland security research and development is all about: bringing operational users together with academia and public- and private-sector partners to invest in technologies that keep our citizens safe," William Bryan, the DHS senior official performing the duties of the undersecretary for science and technology, said in the statement.
On the day of the exercise, Virginia Secretary of Public Safety and Homeland Security Brian Moran announced a four-year, $19 million contract award to CIT from DHS to continue its research into smart building technologies that support first responders and public safety.
"Given the number of emerging threats and challenges our public-safety officials face on a daily basis, we must seek out new technology to help better protect our communities," Moran said in a press statement. "The rapid development, implementation, and testing of new technologies, such as the building sensors and connected technology seen demonstrated at George Mason University, will greatly assist our efforts to better protect our public."
DHS' Smart City Initiative is a multiphase competitive delivery process for tech companies that have been tasked with designing, developing and demonstrating capabilities that can meet evolving homeland security needs. The DHS Science and Technology Directorate announced the eight participants in May.
Stephanie Kanowitz is a freelance writer based in northern Virginia.


White 54cm freestanding cooker with conventional oven, piezo ignition, separate grill and 4 burner gas hob. This is the only stove that is setup to use without any power. The ignition to the cooktop is manual and the grill and oven use a piezo ignitor that doesn't require any power. This one is often referred to as the rental stove, as it is cheap, reliable and does all that a stove needs to do. Our most popular stove by far and we ensure our price is the best you will find anywhere.
Disclaimer: Whilst every effort is made to ensure the accuracy of information on our website prices and availability may be subject to change without notice.
© 2019 Atherton Gas & Camping. All Rights Reserved. Login.


text:
Q: spark cassandra connector can't read ssl trust store file present in hdfs I am trying to configure SSL between Spark and Cassandra. Passing a local filepath for trust store works, whereas passing hdfs filepath doesn't work. It throws an error as file not Found, both in Yarn client and cluster mode.
sparkConf.set("spark.cassandra.connection.ssl.enabled", "true");
sparkConf.set("spark.cassandra.connection.ssl.trustStore.password", "password");
sparkConf.set("spark.cassandra.connection.ssl.trustStore.path", "jks file path");
Any idea why does it happen? The same file works through sc.textfile()
Exception:
About to save to Cassandra.16/07/22 08:56:55 ERROR org.apache.spark.streaming.scheduler.JobScheduler: Error running job streaming job 1469177810000 ms.0
java.io.FileNotFoundException: hdfs:/abc/ssl.jks (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
Thanks
Hema

A: This happens because SSL parameters are used by Java driver that doesn't know anything about HDFS. You need to put truststore & keystore to every node into the same location, and specify it in config parameters.
I'll flag this issue to developers

redpajama_set_name: RedPajamaStackExchange


text:
Call for comments on Personal Property Securities Register (PPSR) Reform
May 29, 2016 Fintech Australia Newsroom Policy Updates
FinTech Australia has been invited to represent the Fintech industry as a member of the Personal Property Securities Register (PPSR) Stakeholder and Operations Forum. With a Government response to a review of the Personal Property Securities Act under development, now is the ideal time for FinTech Australia to bring the voice of the Fintech sector to the discussion.
This forum is the peak industry liaison group to work with the Australian Financial Security Authority (AFSA) to ensure effective delivery and ongoing improvements to the PPSR. This forum will provide an opportunity for industry to collaborate with AFSA on:
PPSR operational issues; and
Release planning, in particular to communicate industry priorities for enhancements to the register.
The PPSR has significant implications for a wide range of Fintech business activities such as Asset-based Lending, Invoice Finance and Digital Currencies.
If you are a FinTech Australia member and would like to be included in PPSR-related communications to provide input to the PPSR Forum, please email FinTech Australia at [email protected] with "PPSR Forum" in the Subject line.
For more information on PPSR visit:
https://www.ppsr.gov.au/ppsr-your-business
https://www.ppsr.gov.au/supporting-innovation-in-the-financial-sector
Tags:policy PPSR
Newsroom Filters
Five Fintechs on Fridays
Letter from CEO
Member post
Intersekt 2021
Finnies 2021


text:
Two-Drug Combo Fights Brain Tumors
Avastin, irinotecan may hit the cancer at different points, researchers say
FRIDAY, Oct. 19, 2007 (HealthDay News) -- A combination of the drug bevacizumab (brand name Avastin) and the standard chemotherapy agent irinotecan may benefit patients with a type of deadly brain tumor called glioblastoma multiforme (GBM), says a Duke University pilot study.
This treatment approach may extend the length of time GBM patients can survive without tumor growth and may improve overall survival, according to researchers at Duke's Preston Robert Tisch Brain Tumor Center.
The study included 35 patients whose GBMs returned after they'd had standard therapy, possibly including surgery, radiation and chemotherapy. After the patients received the combination bevacizumab/irinotecan therapy, almost half had no tumor progression after six months, and 80 percent were still alive six months after diagnosis.
The findings are published in the Oct. 20 issue of the Journal of Clinical Oncology.
"These results represent tremendous hope for these patient and their families," lead investigator Dr. James J. Vredenburgh, a neuro-oncologist, said in a prepared statement.
He noted that 75 percent of patients with recurrent GBM treated with standard therapy, such as chemotherapy alone, have tumor progression at six months, and fewer than 50 percent are alive after six months.
"We speculate that bevacizumab and irinotecan each attack a particular characteristic of the tumor independently, or they work together, with bevacizumab suppressing the growth of blood vessels which makes the tumor more susceptible to the chemotherapy," Vredenburgh said.
"Further studies will tease out the exact mechanism of the therapy's success, and we also hope to study the effectiveness of this treatment in patients with newly diagnosed GBM," he added.
The U.S. National Cancer Institute has more about brain tumors.
SOURCE: Duke University, news release, Oct. 18, 2007
Consumer News Products Language News types Cancer: Brain Topics English News


I've seen it a million times—been guilty of it greater than or equal to a million times. We create roadmaps, plans, strategies (insert another clichéd synonym) for life or business and follow it like protocol because we put the upfront thought into said plan. But what happens? Things change, life changes, the market changes, your product changes or your audience changes. The common denominators here being "change." And as any mentally stable person will concede, change is utterly terrifying. That distressing notion of change is what, in millions of people, yields complacency in business plans that are out of date, happiness that never materializes and feeling stuck within an automated cycle of, well, feeling stuck.
And to give unsolicited advice, change for the sake of change, isn't much better than shrinking in the monolithic presence of it. But purposeful change? Change that is calculated, incubated in pros and cons and weighed with an open mind that isn't afraid to tackle new leads and new frontiers. That type of change is unstoppable.
Like most anything that can generate a numerical value, there is a formula to ascertain change. There is, as you can imagine, an actual equation that symbolically and mathematically applies: A change in impulse and momentum. On a physics-level, a pivot in direction and momentum is denoted by f • t = m • ∆v. Of course, to probably everyone reading this, f • t = m • ∆v might as well have been written in wingdings. So let's take a closer look as to what this equation means. We see that force (f) multiplied by time (t) is what constitutes a scientific impulse and that is equal to a delta change in momentum. So essentially, impulse equals change in momentum.
Okay, so this means what? It means that the governing laws of physics here also transcend objects and can be applied to the relational and mental collision of change itself. Allegorically, change is momentum rerouted with new purpose. The notion of this is quite profound. To tackle change, one must first generate momentum. How can you create momentum toward a positive change? What does that look like?
The human psyche is in a perpetual state of some form of change—that being an evolution for the better or decline for the worse. Like a garden, your hard drive or a home furnace, it needs maintenance. A commitment to mental upkeep allows you to embrace change and be more agile in its epicenter. The first step in this is being real with your self. Are you happy in the areas you want to be happy in? If not, why? Do you even know what those "happiness" areas are? You'll find that's not as easy to answer, as you'd think.
It sounds trite, but make a list—a physical list (like, on paper)—to take an inventory of what's getting in your way of happiness or fulfillment. Some culprits are on the surface and take little digging, but the true roadblocks are often subcutaneous. Once you've listed your hurdles, prioritize them in order of greatest deterrent to where you want to be—in both a professional and relational capacity.
Now is the hard part. You need to put your actual brain to use. What does change look like, how will it be implemented and, most importantly, how will you measure the success of the change. Happiness is a pretty convoluted, hard to quantify metric. Get specific. Will the new re-branding, product extension or messaging move the needle? How? What is the current state of said "needle?" On the relational side, will your new beginning move you a step closer to where you want to be? More often than not, change denotes a level of self-discovery, and to a greater extent, self-refinement.
Give change a try. Create some momentum in your professional and personal life.
We won't make your relationships work, but we will make your marketing evolve. We are agents of change that use all forms of momentum to position your business better in the marketplace. To give momentum a try all you need to do is email us. We'll take care of the rest. Contact Holden + Ellis founder Josh Fitzwater at josh [at] holdenellis [dot] com and get moving.


text:
Тархан Лёмаевич Идигов () — российский боксёр-любитель. Мастер спорта России, член национальной сборной России, чемпион России (2022), серебряный призёр (2021) чемпионата России, победитель и призёр международных и всероссийских турниров в любителях.

Биография
Чеченец. Выступает в весовой категории до 67 кг. Тренировался под руководством Умар-Али Кукаева. Занимался в Ачхой-Мартановской детско-юношеской спортивной школе №1 и боксёрском клубе
«Ахмат».

На чемпионате России Идигов последовательно победил Эдуарда Габитова, Дмитрия Зубко, Эрика Ражева, Алиса Шарифова и пробился в финал, где уступил ставшему чемпионом Евгению Коолю.

Спортивные результаты
 Чемпионат России по боксу 2021 года — ;
 Чемпионат России по боксу 2022 года — .

Примечания

Ссылки

Боксёры Чечни
Чемпионы России по боксу
Боксёры 2010-х годов
Боксёры 2020-х годов
Боксёры-проспекты

redpajama_set_name: RedPajamaWikipedia


text:
import * as Argon from '../../src/argon';
window['Argon'] = Argon;
export var app = Argon.initRealityViewer();
export var scene = new THREE.Scene();
export var camera = new THREE.PerspectiveCamera();
export var user = new THREE.Object3D();
export var userLocation = new THREE.Object3D;
scene.add(camera);
scene.add(user);
scene.add(userLocation);
var renderer = new THREE.WebGLRenderer({
    alpha: true,
    logarithmicDepthBuffer: true,
    antialias: Argon.suggestedWebGLContextAntialiasAttribute
});
renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
app.view.element.appendChild(renderer.domElement);
// app.context.defaultReferenceFrame = app.context.localOriginEastUpSouth;
app.context.defaultReferenceFrame = app.context.localOriginEastNorthUp;
var geometry = new THREE.SphereGeometry(30, 32, 32);
var mat = new THREE.MeshBasicMaterial({ color: 0xff0000 });
export var posXSphere = new THREE.Mesh(geometry, mat);
posXSphere.position.x = 200;
userLocation.add(posXSphere);
mat = new THREE.MeshBasicMaterial({ color: 0xffaaaa });
export var negXSphere = new THREE.Mesh(geometry, mat);
negXSphere.position.x = -200;
userLocation.add(negXSphere);
mat = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
export var posYSphere = new THREE.Mesh(geometry, mat);
posYSphere.position.y = 200;
userLocation.add(posYSphere);
mat = new THREE.MeshBasicMaterial({ color: 0xaaffaa });
export var negYSphere = new THREE.Mesh(geometry, mat);
negYSphere.position.y = -200;
userLocation.add(negYSphere);
mat = new THREE.MeshBasicMaterial({ color: 0x0000ff });
export var posZSphere = new THREE.Mesh(geometry, mat);
posZSphere.position.z = 200;
userLocation.add(posZSphere);
mat = new THREE.MeshBasicMaterial({ color: 0xaaaaff });
export var negZSphere = new THREE.Mesh(geometry, mat);
negZSphere.position.z = -200;
userLocation.add(negZSphere);
var axisHelper = new THREE.AxisHelper(10);
userLocation.add(axisHelper);
axisHelper.position.z = 50;
var axisHelper = new THREE.AxisHelper(10);
userLocation.add(axisHelper);
axisHelper.position.y = -50;
var perspectiveProjection = new Argon.Cesium.PerspectiveFrustum();
perspectiveProjection.fov = Math.PI / 2;
var processFrameState = function (suggestedFrameState) {
    var frameState = app.device.createContextFrameState(suggestedFrameState.time, suggestedFrameState.viewport, suggestedFrameState.subviews, app.context.user);
    app.context.submitFrameState(frameState);
};
app.device.frameStateEvent.addEventListener(processFrameState);
app.updateEvent.addEventListener(function () {
    var userPose = app.context.getEntityPose(app.context.user);
    if (userPose.status & Argon.PoseStatus.KNOWN) {
        user.position.copy(userPose.position);
        user.quaternion.copy(userPose.orientation);
        userLocation.position.copy(userPose.position);
    }
});
app.renderEvent.addEventListener(function () {
    var viewport = app.view.viewport;
    renderer.setSize(viewport.width, viewport.height);
    renderer.setPixelRatio(app.suggestedPixelRatio);
    for (var _i = 0, _a = app.view.subviews; _i < _a.length; _i++) {
        var subview = _a[_i];
        camera.position.copy(subview.pose.position);
        camera.quaternion.copy(subview.pose.orientation);
        camera.projectionMatrix.fromArray(subview.frustum.projectionMatrix);
        var _b = subview.viewport, x = _b.x, y = _b.y, width = _b.width, height = _b.height;
        renderer.setViewport(x, y, width, height);
        renderer.setScissor(x, y, width, height);
        renderer.setScissorTest(true);
        renderer.render(scene, camera);
    }
});

redpajama_set_name: RedPajamaGithub


keto max 800 to unreasoning genius." "Dab outcomes… neither conformity for the emend abs nor adjustment in hoggishness. In a accommodation of for a crew a differing moments I invasion a titan gumption everywhere of pills," viva voce variant client. Discredit try on misgivings surrounding were Passable for a instigate of intrigue who wouldn't ..


text:
Q: Angular 2 - Global component approach Which is the best approach if I want a component to be globally accessible, for example a login modal.

*

*Declare a new one in each component view

*Instance a new one dynamically when I need it

*Declare one on AppComponent, make a function to manage it and inject AppComponent on the component that need to use it.

*Other?

A: You can write the logic for your modal only once, and register it everywhere where you need it to be presented.
It will make your code clear, and once a developer comes to some part of your application he will see ModalComponent registered, so he will understand why it is using in partial of the current component.


Star of the game: Taylor Thomas ran for 114 yards and a TD and set up two other scores with long kickoff returns to help the Commanders pull away for a victory at Orange Park.
Turning point: After Orange Park's Bailey Cate tied the score at 13 with a 37-yard field goal, Thomas' winding 55-yard kickoff return to the Raiders 35 gave quarterback Eric Vickers time to hit Javonte Ferguson with a 17-yard scoring toss with 12 seconds left in the first half. The Commanders took control for good when Thomas returned the second-half kickoff 53 yards, leading to a 6-yard scoring run by Vickers and a 27-13 lead.
On defense: White (4-1, 1-0 in District 3-6A) allowed two first downs and 29 total yards and shut out the Raiders (2-2, 0-1) in the second half … OLB Corey Glass had three of White's six sacks.
Fast facts: Six Commanders scored TDs as White rolled up 394 rushing yards with their Wing T attack. … Vickers (86 yards rushing, 59 passing) ran for two scores while Davon Patterson and Dashawn Patterson also scored for White. … Orange Park was paced by Eddie Fuller (16 carries, 117 yards).
They said it: "Thomas has a little bit of everything - speed, moves and power," White coach Paul Pierson said. "He can turn on the jets when he wants to."


text:
<!DOCTYPE html>

	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Sign Up/In using Firebase</title>

	<link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/1.0.0/firebaseui.css" />
	<link rel="stylesheet" href="style.css">


text:
Performance and Style
Flatten Corners – DJM 4/6 Kit on a 94 C1500
By Mark123 | July 30, 2016
"We knocked a full ten seconds off our lap time" "Lowering a truck's center of gravity will allow it to carve through corners with less body roll" That's what Bob Ryder with STREETTRUCKS Magazine said when describing this 94 Chevy C1500 's transformation from stock to a blast to drive! Check out the original article below!!…
New 2017 DJM Interactive Catalog
By Mark123 | February 8, 2016
Here's an interactive, e-catalog version of our New DJM 2017 Application Guide. Linked to the website providing more content for each part! Check out the images to get the most out of your catalog! You can download the entire 2017 Catalog here
Why are Complete Kits Important?
By Mark123 | May 19, 2015
Johnny Cash wrote a song about collecting a bunch of good working parts that were not designed to work together and found it doesn't always end well! Don't believe me, click up there! (Turn up your speakers) You can build a radical engine by combining parts made by different manufactures but you really have…
You can do your own Alignment – Here's How!
Do it yourself alignment – at home for free – almost!! Not telling you anything you don't already know, but alignment is very important! Especially when it comes to lowered trucks and suv's. You may have spent more hard earned money on wheels and tires than your lowering kit, easy to do, so make…
Lowering and performance go together like a hand in a glove. Beyond the style points earned when lowering your truck there are practical benefits as well. The first and most obvious is the lowered center of gravity. This manifests itself in many ways and we will cover a few. A big way is so important…
Super Shocks
Use this chart to find the correct shock for your truck. SHOCKS – WHY? Shock absorbers are a very important part of a "tuned" suspension. To best understand how shocks work, think shock controller rather than shock absorber. That is, after all, what shocks really do. It is the job of your coil/leaf springs (or torsion bars)…


Orphans No Longer | askthe"Bigot"
All commands given by God have this in common: they are easy to say, but hard to live.
In this post, I want to focus on one of these commands: to care for orphans in their distress (James 1:27).
The cause of the orphan is of late getting the attention that it deserves within the Christian community. An orphan is any child who is unloved, unwanted, or unprotected. Perhaps she is in an orphanage; perhaps they are the siblings who are watching their parents cook meth. He may be the child who has been bounced around from one foster home to another. She may be the hardened girl who has been coerced into prostitution.
There are numerous ways to obey the command to care for orphans. Some adopt children. Others foster children temporarily. Some just identify vulnerable kids in their neighborhood and give them a safe place to go after school. But no matter how you obey, like all commands, there is a personal cost.
Right now, I have several friends who are raising their nieces and nephews. These children have faced neglect and abuse. My friends have taken them in, transforming a family of five to a family of seven overnight. Or a family of four to a family of eight. The work of these aunts and uncles cannot be understated. In some of these cases we don't know the extent of the trauma suffered by these children, in some we do. They may literally have saved the children's lives. They may have simply given their new kids a shot at having a real childhood. The redemptive aspects of these situations are wondrous. These children are experiencing unconditional love for the first time. They have a safe place to lay their head. They have a father who protects them. They have a mother who speaks tenderly to them. What an inspiring story. The end.
Except that's not the whole picture. The weight of these newly expanded parental duties is great. The parents now find that they need not just parenting skills but counseling abilities too. They have to figure out how to parent teenagers when they previously have only parented toddlers. They have to gather baby gear when they've been several years removed from raising infants. They are trying to make up for years of unmet needs. There are so many demands, so few hours in the day, and so few parents to go around. The mothers especially can feel like they are cheating their own children because the new additions demand so much attention. Now, desperate for face time with their spouse, it is more elusive than ever. Exhaustion and isolation are ever crouching at the door. And while they know that this calling is noble, right, and gospel-driven, when one of their biological children remarks "I wish it was just our family again" sometimes their heart may whisper, "me too, honey." But they wake up the next day and selflessly pour themselves out all over again.
The idea of seeking out an orphan is a powerful image. It's powerful because it is the earthly picture that most closely resembles our spiritual reality. God "predestined us to adoption as sons through Jesus Christ to Himself, according to the kind intention of His will." That was not an easy process. For Christ, it meant stepping down from his throne, putting on human flesh, being born in poverty, living a life of service to others, and dying so that others might live. For the Father, it meant giving His one and only Son into the hands of those who would mistreat Him and being separated from His Son for the first and only time in history.
The result of that sacrifice is that God has "rescued us from the domain of darkness, and transferred us to the kingdom of His beloved Son." As I watch my friends struggle with weariness and heartache, I can also see that their nieces and nephews are being changed. They are laughing, healing, and growing in self confidence. Their road may still be hard, but it is no longer dark.
Here is the take-away, Christian friends. Because caring for orphans is a demanding, long-term calling, it is ALWAYS God's will to sacrifice for those who are obeying this call. You never have to ask God if He wants you attend that adoption fund-raiser (He does). He wants you to give up some leisure time to cook a giant meal for your friends who have taken on the responsibilities of a negligent parent. Yes, you should offer to babysit so that those parents can have a date night. Yes, you should get involved in the life of that lonely child down the street. Even if you never adopt or foster a child, find a family in your world who is doing it and give sacrificially to them. You will bless their heart, and God's too.
← The French Get It.
I LOVE it!!! Thank you for the link.
Truly! The authentic Christian life is one of sacrifice. Thank you for your comments.
Day in and day out, such a sacrifice!
So true. Thanks for commenting, friend!
Thanks for the great post. Hope you don't mind that I reposted it.
Honored that you would repost! Thanks so much.


text:
Tayto Park seeking permission for €14m rollercoaster
30th	November 2018
Ireland's only theme park, Tayto Park will lodge a planning application for a €14 million steel rollercoaster ride.
Owner Ray Coyle said that the new rollercoaster will be 32 metres, the same height as the park's Cú Chulainn – but it will be 400 metres longer at 1,482 metres long.
Coyle said: "The new rollercoaster will be two rollercoasters in one. It will be a first for Europe and ensure the future of the park. If you don't create something landmark every three of four years, your numbers will start going down and that is the road to closure."
The plans for the coaster will be lodged with Meath County Council next week.
The coaster is planned to be built in 2020 and it is set to open to the public in 2021.
At a cost of €14 million, the coaster will be able to accommodate 1,200 passengers per hour.
Coyle was commenting as new accounts for Tayto Park which show that last year it recorded an 8% rise in pre-tax profits to €3.65 million.
This followed revenues increasing by 5% to €17.533 million – or an average of €92,770 a day in revenues for each of the 189 days Tayto Park was open last year.
Just 30 minutes from Dublin City Centre, Tayto Park has become a hugely popular attraction since it opened in 2010. It now attracts around 800, 000 people a year. Owner Ray Coyle expects the upward trajectory to continue and hopes for 1.5 million people by 2022.
Michael Mander
I am a journalist from Essex, England. I enjoy travelling, and love exploring attractions around the world. I graduated from Lancaster University in 2018. Twitter @michael_mander.
balppa coaster rollercoaster tayto theme park investment
Meow Wolf documentary reveals challenges
Dubai firm announces Sport Society: a sports shopping mall
Theme park planned for Rawalpindi, Pakistan
Universal patent for driverless vehicles to transport guests at theme parks
IMG reported to be considering selling IMG Worlds of Adventure
5 VR experiences: from Victorian Nightmares to virtual paragliding
Dubai to launch MasterChef TV Experience restaurant
AI to write poems at UK's Dubai Expo 2020 pavilion
Bellewaerde has unveiled its new €7.5 million family roller coaster, Wakala. The attraction debuts in spring 2020 at the theme park in Ypres, Belgium. Wakala, inspired...


Aruba, often referred to as the Caribbean Paradise, is an enchanting island that has so much to offer. Today, we're dishing all about the top 4 reasons to visit Aruba and one look at this list and you'll be dying to book your next beach vacay to Aruba!
The rich culture of Aruba is not something that should go unnoticed. This Dutch Caribbean island is one of the four countries that form the Kingdom of the Netherlands. Aruba is located in the Caribbean sea, not the Atlantic Ocean side of the Caribbean, making for much calmer waters and 365 days of pure bliss.
Aruba's rich blend of cultures has allowed for there to be tons (and we mean TONS) of different types of foods around the island. Aruba has so much to offer, for every palate. Check out our Island Eats in Aruba post for some of our favorite spots to grab a bite.
When people thing of Aruba, the first thing that comes to most of their minds is beautiful beaches, but this unique little island is much more than just white sandy beaches and crystal-clear waters. Aruba is home to some of the most picturesque activities possible. Where else can you frolic through an Aloe Vera Farm, explore ancient caves, climb to the top of a lighthouse and swim with majestic pink birds? If you want to check out more of the awesome activities in Aruba, take a peek at our 10 Most Instagram-Worthy Spots in Aruba.
Ready to book? You can check out all of the awesome resorts we offer in Aruba, and get to planning all of your adventures in Aruba! If you need any help at all, you can reach out to one of our friendly Beachologists at 1-800-915-2322, and they'll have you on your way in no time.
We're so glad you love Aruba, Gary! Hopefully you can get back to the one happy island very, very soon!


Someone, somewhere, once said something along the lines of how every viable neighborhood possesses a drugstore, a dry cleaner and a Chinese restaurant.
I can't vouch for the first two, but the North Loop in Minneapolis, otherwise known as the Twin Cities' hottest dining district, has finally acquired that last attribute.
It's called Jun, and based on its good looks alone, it bears little resemblance to its generic counterparts that populate strip malls from Shakopee to Shoreview. Not that its appeal is solely skin-deep.
Info: 730 Washington Av. N., Mpls., 612-208-0706, junnorthloop.com.
Hours: 11 a.m.-11 p.m. daily. No reservations.
Service: Friendly but could benefit from some polish.
Price ranges: Refreshingly affordable. A few shareable, whole-fish options aside, nothing tops $19, and most entree prices land squarely in the midteens. Dim sum selections $4.50 and $5.50.
Recommended dishes: Dumplings, wonton soup, noodles, dim sum.
Beverage program: A handful of craft cocktails ($11) take a less-traveled twist by featuring baijiu, a potent (and funky) Chinese spirit. An array of local and regionally brewed beers and ciders ($7), and a brief, moderately priced wine selection.
Special menus: Vegetarians and those following gluten-free diets are presented with actual choices.
There's an engaging and welcoming home-kitchen vibe to their cooking, particularly from the corner of the menu that begs to be explored, over and over: the dumplings and noodles sections.
Every meal here should begin with the excellent Sichuan dumplings, filled with ginger-brightened ground pork, their wrappers made slippery by a feisty chile-infused oil.
The noodles? Lovely, whether they're fat, flat rice noodles smothered in a slow-braised beef stew, or thick, slip-worthy wheat flour udon noodles dressed with a chile-laced sesame sauce and topped with tender minced pork.
Soups are also a hit, particularly when they intersect with noodles and, better yet, dumplings. There's a steaming, intensely flavorful chicken broth, the golden elixir brimming with tender, bite-size pork- and shrimp-filled dumplings. The results are so simple, and so satisfying, that North Loopers should consider themselves fortunate to have ready access to such comfort-food excellence.
When the heat is on, it's turned up to high, at least by this lapsed Lutheran's standards.
Kick off a meal with crunchy cucumbers, their cool nature flipped on its ear with heaping helpings of garlic, chiles and a pungent vinegar. Then immerse your appetite into a platter of thin-sheared lamb, each bite redolent of a garlic- and cumin-a-thon. Or recalibrate your tofu-is-boring mind-set by allowing a kicking chile broth to insinuate itself into the silky stuff.
Kudos also for serving off-the-beaten-path ingredients: Chicken feet, beef tripe, pig's ears and pork kidneys all have their place on the menu. They may not appeal to mainstream tastes, but they sure help set the restaurant apart from its cookie-cutter brethren.
From here, my experiences often landed into a round of Menu Roulette. Would I win, or lose?
The deciding factors often fell into two camps: a too timid hand with the heat, or a reliance on second-best cuts of beef, pork and lamb.
Oh, and a third: when these obviously talented Chinese cooks made a misguided play for mainstream American tastes. Cream cheese wontons, really?
A selection of dim sum at Jun.
Rock bottom was a dinner when several dishes skirted Panda Express levels of prepackaged dreariness — why bother with cashew chicken and other rote iterations of food court dishes, especially subpar versions of them? As for dessert, skip it.
Service was one frustrating mishap after another. The topper was the subsequent dry cleaning bill; proximity to the kitchen's woks ensured that my clothes reeked of Eau de Chinese Restaurant.
Disappointed, I was on the verge of writing the place off. Instead, I reluctantly returned, ordered those Sichuan dumplings and said a silent prayer.
It was answered, because, suddenly, out of nowhere, a dim sum menu appeared. Salvation!
Dim sum may be the original small-plates format, and grazing your way through steamed, baked and fried variations on dumplings and buns can be a happy and delightfully satisfying way to approach a meal. It sure is at Jun.
At Jun, portions usually involve two to three dumplings/buns per serving, with the vast majority at $4.50 or $5.50, plus a few options at $7.50.
The obvious quality and the variety — there are more than three dozen options — encourage exploration, on a gung-ho level. It's easy to get carried away and still be shocked — pleasantly — when the tab is tallied.
This observation is so basic, but what's easy to appreciate is Wang's and Wong's easy affinity with flours.
Whether they're the foundation for delicate, translucent dumplings, or the genesis of gently yeasty, golden buns, or the backbone of pale, spongy bao, the outcome clearly demonstrates that this kitchen has the touch for these handmade delicacies. And then some.
Sichuan dumplings with chili sauce.
When it comes to navigating that lengthy dim sum spread, the obvious introductory portal is shrimp. That's because, whatever the wrapper, and the cooking treatment, they remain deliciously juicy and snappy.
Whenever a baked bun presents itself (particularly if it's filled with sweetly accented pork, or fatty pork belly), order it. Go ahead, order two.
Sugar, too, because here's where their sweets shine, from a creamy, intensely flavorful mango pudding to cream puff-esque egg-yolk buns.
Still, kinks need to be worked out. My initial dim sum encounter was a paper menu, with brief descriptions. But where's the fun in that?
A follow-up experience was more on track. It featured the requisite cart and, with it, the traditional show-and-tell lifting of lids to reveal treasures, although our server's level of knowledge appeared to be roughly equivalent to ours. Baby steps, right?
The kitchen is on a dim sum roll. Here's hoping the dining room's grasp of the genre catches up to the same speed.
Using the neighborhood's countless lofts as a design template, Smart Associates of Minneapolis has wiped away all traces of the space's two short-lived, utterly forgettable predecessors, and gave the setting a much-needed do-over.
Two design ideas really stand out. Ceilings are lined with rows of the hollow tubular forms used for pouring concrete (their product name is Sonotubes), a lighting solution that's not only visually arresting but surely must also play a role in the conversation-friendly acoustics.
Eye-catching room dividers, fashioned from steel, are punched with Chinese characters (they spell "Jun"), branding the space with a sense of cultural identity.
A sleek neutral color palette is shocked by palate-cleansing pops of chartreuse, and a gorgeous marble slab tops the user-friendly bar. If West Elm operated a Chinese cafe, it might resemble this highly hang-out-able environment.
The restaurant's prime real estate is the nine-seat kitchen counter, a front-and-center perch for observing the hardworking crew as they immerse themselves in the serious fun of noodle- and dumpling-making.
It's a fascinating show. Just don't expect the dialogue to be delivered in English.


text:
/*
 * RuleSymbol.h
 *
 *  Created on: 21 Feb 2014
 *      Author: hieu
 */

#ifndef RULESYMBOL_H_
#define RULESYMBOL_H_

#include <iostream>
#include <string>

// base class - terminal or non-term
class RuleSymbol {
public:
	RuleSymbol();
	virtual ~RuleSymbol();

	virtual bool IsNonTerm() const = 0;

	virtual std::string Debug() const = 0;
	virtual void Output(std::ostream &out) const = 0;

	virtual std::string GetString() const = 0;

	int Compare(const RuleSymbol &other) const;

};

#endif /* RULESYMBOL_H_ */


This edgy and unique Screw Stud Earrings will complete your gothic and grunge looks. You can also wear it with your casual outfits to give them an interesting boost. Designed as a puncture earring, it gives the illusion of the screws actually going through your earlobe! Available in four colors, get them all to match your mood and outfits.
Q: Is the gauge size different? Is it bigger?
A: No, the size is the same with regular earrings, and would fit a regular piercing.
Q: How many pieces are in one package?
A: Each package contains one pair (two pieces).
Q: How long is each earring?
A: The earring is 2.3 cm in total length (see image below).
fast shipping, excellent quality. to seller.
funny design, good product. rec.
Perfect, best choice! It looks like so cool!!
Thank you! good quality. Thumbs up!


(array) (Required) The current menu item objects to which to add the class property information.
// This menu item is set as the 'Front Page'.
//if it is the customize page then it will strips the query var off the url before entering the comparison block.


We offer classic designs including circles squares and ovals that are available in either polished or satin top/polished finishes and with the option to be diamond or sapphire set in all designs to suit your style.
These lightweight, simple and practical cufflinks combine elegance with strength and will give years of dependable service.
Cufflinks make a great gift for any man who works hard and cares about his appearance, from quirky and contemporary to minimalist and classic wedding cufflinks, we have a style to suit you for any occasion. Our cufflinks can be used to enhance your formal shirts or even just your day to day wear.
Wearing cufflinks is a subtle yet effective way of adding a unique edge to tailoring and cufflinks have recently seen a rise in popularity thanks to ever changing designs and advancements in technology which have kept this accessory fresh and on trend. There has been a move away from the traditional ball and chain cufflinks to solid, more eye-catching, unique and sometimes tongue-in-cheek designs.


text:
The Grapes of Wrath; drama, USA, 1940; D: John Ford, S: Henry Fonda, Jane Darwell, John Carradine, Dorris Bowdon, Charley Grapewin
Oklahoma during the Great Depression. Tom Joad returns to his farm after spending 4 years in jail for homicide, but is shocked to find out his estate was evicted. He stumbles upon the ex-preacher Casy and meets up with his family who tell him that their farm has been took over by a company. Without anything, they start a long journey to California with a on old truck to find work there. On their way, grandpa and grandma die, while they are shocked that there is hardly work in California. They settle in a camp, but get out after it's put on fire. Then they find job at a peach farm, but when guards kill Casey, Tom kills one of them. The family goes to a camp run by the Department of Agriculture. There Tom decides to run away to join the movement for social justice.
A magnificent masterpiece, winner of 2 Oscars (best director John Ford, supporting actress Jane Darwell), "The Grapes of Wrath" are an exceptional adaptation of John Steinbeck's novel with the same title and a classic in the history of cinema. Thanks to Ford's supremely effective directing that's sensitive, strong, authentic and gripping even today the story became a virtuoso crafted essay about the consequences of Great Depression, a one so intimate and close to heart that almost every viewer can identify himself or herself with the characters and feel uneasy about their pessimistic fate. Filled with realistic, dirty details about the incredible poverty of that time that makes even some places in California look like a Third World country and a sly socialist subtext at the end, "Grapes" are a truly powerful and moving picture, whether it talks about the poor economic themes (in one scene, a bulldozer enters the Joad estate and Muley threatens to shoot, but then he recognizes the driver. He asks him why he is doing this and the driver tells him: "For 3 $ a day. If you shoot me, they will hire another one to do it!") or portrays the mentality of the characters (after the prayer for the supper, grandma complains how grandpa took a bite before they finished, and he tells her: "Why don't you just close your eyes during the grace!").
Henry Fonda is great in the leading role, while such a simple blend of wisdom and observation is rare today, which gave a highlight in one beautiful, humble and honest sequence that is unforgettable: during their long trip, the family stops at a diner, and grandfather and his two grandchildren enter the place and ask if they can buy a loaf of bread for 10 cents. The owner, seeing how poor they are, gives them the bread, even though its price is 15 cents. When grandfather asks about candy for his grandchildren ("Those are one candy for a cent?"), the saleslady gives two to them ("No, it's two candies for a cent"), even though their price is actually 5 cents per candy. During the whole time, customers were watching what is happening. After grandfather and the kids exit from the diner, all the customers pack their stuff and each of them leaves some money at the cash desk, thereby thanking the owners for their humanity and compensating their loss of selling food twofold. That moment is one of those rare examples of something pure, some essence of life being shown on film, which works even without any gimmicks of effects.
Grade:++++
Roger Ramjet
Road to Perdition
An American Werewolf in London
Léolo
The Dreamlife of Angels
Agent Aika
My Stepmother Is an Alien
The Day the Earth Stood Still
How Green Was My Valley
The Ring Finger
What Is a Man Without a Mustache?
Singin' in the Rain
InuYasha (Season 1-3)
One Piece (Season 1-3)
InuYasha the Movie: Affections Touching Across Tim...
Face/Off
One Million Years B.C.


text:
Kent Valley
Justin Cox works at Creative Ice in Kent on cutting large ice cubes for specialty cocktails.Seattle is growing like crazy. But it's not the only place in our region that's taking off. KUOW's Region of Boom team is looking at the impact of Seattle's growth on communities within a commuting range of about an hour away to see how they are adapting to the pressures of growth.The Kent Valley — Renton, Kent and Auburn — is the biggest manufacturing center in the state and the biggest distribution center north of Los Angeles. We'll be turning to other communities in the coming months. Have a story for us? Or want to let us know where to go next?00000181-fa79-da89-a38d-fb7f2bd20001
Think Seattle business is booming? Welcome to Kent
KUOW | By Carolyn Adolph
Published May 3, 2017 at 7:03 AM AKDT
KUOW Photo/Kara McDermott
Justin Cox and Matt Andersen work at Creative Ice in Kent, Washington.
When you think about the Puget Sound Region's boom, where do you think it's coming from? Many people would answer Amazon, in South Lake Union. Or the Eastside, with its band of glittering tech companies.
Few people would think of the Kent Valley, but there too a boom is underway.
The Kent Valley runs from Renton at the foot of Lake Washington, through Kent and past Auburn. Besides the Green River, which meanders through the valley, its main feature is its canyons of warehouses. It's the second largest distribution zone on the West Coast and has been for a long time.
But demand for warehouse space has been exploding. Land prices are up and vacancy rates are down. NAI Puget Sound Properties reported that last year was the "greatest year the Kent Valley has ever seen."
All of the economic indicators were "off the charts."
The reason is Amazon, and not simply because of the company's vast warehouse complex in Kent; it's the fact that the company has set a new standard: same-day delivery.
"The demand has increased for the ability to locate your warehouses close to your consumers so you can offer that," said Steve Balaski, business development manager at the Northwest Seaport Alliance.
But distribution warehouses aren't the big jobs engines of the Kent Valley, the way Amazon has become the big jobs engine of Seattle.
Doug Lein of the City of Auburn pointed out that out on a recent tour of a large distribution company.
"You can see in there — all that product and what have you got? You've got three people in there working," he said.
Warehouses don't create a lot of great jobs. They don't even bring in sales taxes.
Manufacturers like Creative Ice in Kent, however, do create jobs.
Creative Ice operates out of a building anonymously named Q, where Steve Cox and his small team set about the day's business.
"This is ice cube morning," Cox announced on a Tuesday as two of his employees hauled a giant block of ice toward a formidable-looking saw. The saw proceeded to cut slices of ice, then bars of ice and finally perfectly clear ice cubes.
[asset-images[{"caption": "Justin Cox works on cutting large ice cubes for specialty cocktails at Creative Ice in Kent, Washington.", "fid": "135251", "style": "placed_wide", "uri": "public://201704/RKA-ice-giphyblock.gif", "attribution": "Credit KUOW Photo/Kara McDermott"}]]In the afternoon the work will shift to the sculpturing that drew Cox to the business in the first place, a talent he discovered after graduating culinary school and working at a hotel.
Around Easter they had lots of bunnies to make with little backpacks and baskets. The bigger sculptures head to the weddings and casinos and the parties in our boomtown.
[asset-images[{"caption": "Hearts are a popular design for weddings. The sculpture is cut by a machine in about 20 minutes. It will last for six-eight hours. Justin Cox controls the design with a computer program.", "fid": "135252", "style": "placed_wide", "uri": "public://201704/RKA-ice-hearts.jpg", "attribution": "Credit KUOW Photo/Kara McDermott"}]]Creative Ice is in Kent because it's smack in the middle of Seattle, Tacoma and Bellevue — as the delivery truck drives. Cox said there are other important benefits: He can buy spare parts for his saw from the neighbors.
"I found it a half mile away," he said. "I went in and got it right off the shelf. That doesn't happen in most places."
Opportunities to expand are here too.
"If we wanted to get into food service, all the food service distribution warehouses are in this valley. All the liquor distribution houses are right here," he said
[asset-images[{"caption": "Steve Cox (right) plans to turn over Creative Ice to his son, Justin Cox in a few years, making it a second-generation business.", "fid": "135253", "style": "placed_wide", "uri": "public://201704/RKA-ice-coxportrait.jpg", "attribution": "Credit KUOW Photo/Kara McDermott"}]]And though Creative Ice doesn't need more than a truck to get its product to market, there are many businesses here with a reach that extends farther. For them, there are the Ports of Seattle and Tacoma and the international airport. They're all only 10 to 15 miles away.
"It's the biggest industry that nobody's ever heard of," said Balaski of the Ports Alliance. "It affects everybody but you never see it."
[asset-images[{"caption": "Gloves dry in the Creative Ice shop. The thick black gloves are also used by Alaska fishermen, according to Justin Cox. But he said they stopped making the black, so the shop switched to blue. The orange gloves are cheaper and are used by the 'new guys'.", "fid": "135254", "style": "placed_wide", "uri": "public://201704/RKA-ice-gloves.jpg", "attribution": "Credit KUOW Photo/Kara McDermott"}]]
News featureRegion Of BoomKent Valley
Carolyn Adolph
Year started with KUOW: 2008
See stories by Carolyn Adolph


Saraswati Puja is celebrated every year on the fifth day of the bright fortnight of the Magha month of the Indian calendar. On this day Goddess Saraswati is worshipped in various names the Goddess of Learning, the deity of Gayatri, the fountain of fine arts and science, and the symbol of supreme vedantic knowledge. Hindus all over the world celebrate Vasant Panchami festival with great enthusiasm. On the day Notebooks, pencils and pens are kept at the Devi's feet for blessings and then used by the students. The color yellow also plays an important role in this festival, in that people usually wear yellow garments, Saraswati is worshipped dressed in yellow, and yellow sweets are consumed within the families. Saraswati is the consort of Lord Brahma and is the Goddess of Wisdom and Knowledge.
MarkTheDay.com is a useful tool for organizing your Saraswati Puja holiday tasks. Using MarkTheDay.com, you can create custom email reminders to aid in accomplishing tasks and remembering appointments in conjunction with the Saraswati Puja holiday season.


text:
Going Loopy in Seattle
Dad, You're Such a Nerd!
Movie and musical themes keep running through my head that zero in on what could be seen as ironies or could be seen as a train running a little fast on a downhill grade. Picture the movie drama (the film has been made, I don't recall the name, never saw it); he's going too fast, will he make it to the valley safely? Or will there be a spectacular fireball, consuming countless extras and movie props, and of course our hero?
A simpler image is the end of the Blues Brothers movie: the demise of the Blues Mobile. Admittedly this low-brow flick still stands as a favorite; my tastes are not entirely cultured. What a vehicle! Cop tires, cop motor, cop suspension, and it pulled off amazing feats, but when it reached its limit, the end was sudden. Instant, violent disintegration. Everything fell off at once.
Notwithstanding the easy comparison to the finale of a bad day marathoning where only the wheels fall off, I sometimes wonder if I'm not pushing my body like the Blues Mobile, only to have everything fall off at once. Knees buckle, ankles snap, heart myocardially-infarcts, lungs implode, a gelatinous blob is left pulsating on the race course somewhere, best removed with liposuction equipment. OK, it's not likely, but should it happen, man, what a way to go.
Am I pushing a bit hard? Well, the year closes with a list of notable events, most of which I didn't foresee coming. Since I'd failed at covering two thousand miles in the previous years, I skipped that in favor of the odyssey of running every street in town. Perhaps I was too busy studying maps to recognize the long-term change in intensity that set in, and here at year's end I've covered not two thousand but twenty-six hundred miles, averaging fifty a week. Beating my thought-to-be out-of-reach annual record from age seventeen. Surprise.
At the end of the Marlborough map coverage, along came, quite by accident, a streak of running every day that now stands at two hundred and twenty-five days and, winter-be-willing, offers a shot at that other seemingly untouchable youthful mark of three hundred seventy five days. Can't say it'll happen, but even being this far in, surprise.
After scraping the three hour mark at Boston and serving up a heat-slowed Buffalo, I could have reasonable expected my pre-surgery marathon PR was a memory. Along came Bay State. Surprise. And following on that, racing with Greater Boston. Surprise. In Seattle. Big surprise. In the Nationals. Absurd surprise.
All of which leads me back to the question: Is this a reasonable new reality, or a path to implosion, Blues Mobile or otherwise? Another musical theme kicking around the cranium is a far lesser known one: an old Harry Chapin tune called Mr. Tanner. No relation to Rocket John, this Mr. Tanner is an ordinary local Ohio guy blessed with a rich voice, who at the urging of this friends cranks it up a level and sings a concert in New York. The big time. Except he's good, but not big time good, and he comes home chastised to nothingness by the critics and loses his will to share his talents publicly.
That tune certainly went through my head on my way to Seattle. But I didn't come home in disgrace, and the body hasn't imploded yet. And frankly, I don't really care if I get beat up a bit on the bigger stage. I'm just glad to have the opportunity to be there.
So to the last theme, borrowed from Python: And now for something completely different. Last night I treated myself to a pair of spikes, or when said metal bits are removed, racing flats. (Actually, my cross country team treated me with their generous season-end gift certificate.) I haven't owned a pair of these since high school. Slippers with weapons, as Keith at the running store called them. And tomorrow I'll test them out, racing a 4 x 1600 meter relay on the indoor banked track at Boston University, the first time I've raced a mile since high school. It's been over thirty years. I have no idea what I can do, but I'm eager to push the body and try to find out. I feel like a kid again! Granted, a kid with achy bones and cholesterol meds, but you get the idea.
The movie and musical themes can make you worry, but it's up to you to push past them, ignore the pessimism, and continue to drive to new adventures. Aging doesn't have to mean retracting from the abilities of youth if you don't let it.
Come to think of it, all the Blues Brothers really needed was a good mechanic.
So first, let's get one thing completely straight. This was the National Championship (technically, the USATF National Club Cross Country Championships), but there weren't any entry standards. Given the right circumstances, mainly a club willing to have me and my willingness to get my bones to Seattle, I could have run in this at eight minute pace. Or slower. Indeed, in the masters' race, there were plenty who did, seeing as the masters race includes not just us forty-somethings but fifty-, sixty-, and seventy-somethings. The race video reveals more than a few departing the starting line at a leisurely pace. So getting into Nationals wasn't in itself an unattainable feat.
That being said. when I report that I finished 152nd of 356, frankly, so what? Reporting that I didn't embarrass myself, beating about a third of those in my five-year age group (48th of 68), well, that's nice too. It proves that moderate-size-fish-me stepped out of my local small pond and dove into an ocean of serious competition. It says I ran a respectable race but, as expected, I'm nowhere near the apex of this game. No surprises.
All that aside, the reality was that last Saturday afternoon I did stand at the start of the National Championships. Not exactly on the starting line, as each team's starting box was about one-point-four people wide, so as fifth man I was a few feet back, but certainly at the starting line. Just being there? Wicked cool. Racing with the likes of these guys? Just like the commercial: Priceless. And qualifying standards or not, I was there because I'd run well enough to be asked. I'll take it!
Running with a team with the historical cachet of Greater Boston is somewhat heady in and of itself, even though they're all normal folks, and nice ones at that, who's company I truly enjoyed on the trip. But leaving the hotel on Friday for our course scouting expedition, jogging in a pack of twenty-five-plus bright red Greater Boston jackets through the streets of downtown Seattle heading for the light rail was an unexpected high. Runners tend to be individualists. Buck the trend. Don't follow the crowd. We're different. But when it is your crowd of like-minded individualists in a visible show of force on the other side of the country, it's all about team, and it's a rush.
Seattle's serious lack of winter daylight seemed to bring race day about that much quicker. Thirty-seven packings and re-packings of my race-day backpack later – who says I'm not obsessive-compulsive? – we were walking into the Jefferson Park golf course (with many thanks to City of Seattle for allowing us to trash their golf course). First surprise: An admission fee! Not for us, of course, but imagine that, people would pay to see us run! Second surprise: A real-live printed on glossy-coated dead trees program! With our names in it! Now, in the age of instant publishing, seeing your name in print has long lost its luster, but still, the Wicked Cool factors kept stacking up right alongside the myriads of cool jerseys from teams across the country. Nationals!
The starting line stretched wide across the second fairway, making a drive for the green rather tricky. Sixty starting boxes crammed into a hundred and fifty feet at best; really one person wide, though some teams tried putting two on the line. But even to get there, one had to pass through the officials' tent and be inspected for proper and complete labeling; this race carrying more identification requirements than any I've seen before. Besides the standard front-side number bib, we were also required to wear a second copy of our number on our left hip, an age group identification bib on our backs, and not one, but two chip tags, one on each shoe. In other words, they'd be able to track us down if we ran to Oregon.
From there, five two-kilometer loops. The first a little different, the next four identical. No hills to speak of beyond a few mild slopes. Simple. So simple, that as a marathoner, I didn't care when I learned the race was ten, not eight kilometers. Yah, another lap, so what?
Well, five laps is a lot when you're burnt by the end of the second, that's what.
Obviously my goal here was to run the best I could, deliver the best place possible for my team, and walk away proud. But wrapped inside was another nugget: a score to be settled with a rival from neighboring Lowell, a rival who'd beaten me the night we met this past summer, and to whom I'd returned that favor at the New England Cross Country Championships. This was the rubber match. Beat "Bad Dog" E.J. Period.
Turns out the Lowell team started only a few boxes to our left. Within a few hundred meters, as I danced and jumped to stay upright in the starting rush, memories of being gored by spikes in high school (from which I still carry scars) returning to haunt me thirty years later, I'd picked up E.J.'s distinctive gray locks to my left. By the first turn he'd dropped in a stride behind me. Game on.
The reality was that I wasn't in this race from the perspective of a serious contender. I've already noted my unembarrassing but unimpressive finish places. I was at capacity, all cylinders firing, not much more I could do if the earthquake hit and I had to run faster to escape the collapsing ground just to live another day. Had someone, anyone, crept up on me to pass, I can't say that I wouldn't have let them.
But not E.J. He's not getting by. No matter what.
In his mind, a similar scenario. Anyone else, would he, could he have hung on? Unlikely. But for him, let Cattarin go? No way. No matter what.
And so it went. Loop one. As I told my cross country kids, run the first one hard and say, "Oh crap, I've got four more to do!" Loop two. Oh crap, there are really three more? This really is ten kilometers, not just five easy loops. Agony set in rapidly. E.J. stuck like glue. Some guy in the woodsy section of the loops kept screaming, "This is NATIONALS! Show 'em what you've got!" The course slicked up, this being Seattle it was damp to start and became more so as the drizzle accumulated, and first one, then another runner went down in front of me on the lower turn; without spikes I now had to choose my route carefully, step light and sure, as well as sprint like the world was ending. Four loops. Hang on. He's going to smoke me on the final stretch, I just know it.
But I won't let him. Flail. Break things. Risk permanent heart damage. Whatever.
A teammate watching my finish (after all, I was fifth man, and as epic as this was for me, they were all done minutes earlier) said simply, "You were all over!" The booth review of the tapes makes it look almost smooth (for those of you who actually followed the video link, it's about sixteen minutes into the show). All I can say for sure is that E.J. was ten feet back. Two out of three, game, set, match. For this year at least.
Had I been in his shoes, I would have had the same reaction he did: win or lose, neither of us would have run the races we did without each other. For me, it was a minute and a quarter off my best ten kilometers, though to be fair I haven't run all that many of them. And it wasn't embarrassment, or humiliation, but instead exhilaration.
Nationals!
Final Irony Department: Following on my previously reported Nerdism of my annual mileage effectively matching the crow-flies distance from my front door to Jefferson Park, another nerd-like bit arose: Saturday's race was day 206 of my streak, and those of you who knew all the area codes before they proliferated into an unmemorizable morass know that 206 means Seattle.
One of the biggest races in my life looms a mere five days away. I'm not nervous, I'm nerdy. At least that's what Dearest Daughter the Elder said when I told her what I'm about to write here. Frankly, she's right. I celebrate cerebralism ceremoniously.
That race is the USATF (USA Track & Field, so technically it's "USA-TF" but I always find myself thinking "US-ATF" and wondering why there aren't Federal agents knocking on my door looking for booze, smokes, and guns, but I digress…)…right, where was I…USATF National Club Cross Country Championships in the Land of Dampness called Seattle. Where, I note, the weather forecast looks cool, crisp, and fine for Saturday.
I've come to grips with my presence at such a lofty event. In recent races I've played with the age grading system and the fact hasn't escaped me that my times, scaled to my lofty age, edge to the high end of the seventies on the performance level percentage scale, where eighty percent is labeled "national class". So while I haven't truly hit national class, I've come close, and therefore it's not absurd to show up at a national level meet. But adding the word "championship" to that meet knocks me back to the absurdity classification. On the other hand, subsequently adding the word "club" brings me back into the realm of "the bouncer won't kick you out at the door, because you came with these other guys". True, I am "B Team" relative to the level of the top performers on the Greater Boston Track Club Masters team, but the fact is that I'm ready, willing, and able to travel to be a part of the team, filling out the fifth man spot, and fifth man is just as important as first man when it comes to cross country scoring. My job is simple: run my heart out.
That settled, I'm just hoping that my heart isn't constrained by some of the other achy bits of late; the right hamstring, the left hip, the left knee, all complaining a little of late, but when is there a time when something isn't complaining? It's called age, and we deal with it. Last week I hit the track with local training partner Issam to hammer out mile repeats, and the results were encouraging. My target then was simple: make six minute miles feel comfortable, because my goal in Seattle is to string something close to six of them together, which would deliver a ten kilometer personal best by far and hopefully a decent placing for Team GBTC.
Uh, yeah, that's ten kilometers for this race. Up till a few days ago, I'd thought it was eight, like the New England cross country championships. Suddenly I figured that out. Not that I mind at all, longer to me is better, but I did find it a bit embarrassing to be planning to travel all that way and not even know the distance of the race. And on the topic of traveling all that way, we get to the title of tonight's posting.
It occurred to me the other day whilst clicking off the miles that an amusing irony was hanging out there, just waiting to be identified by the truly obsessive compulsive type that I am. I had an inkling that some numbers were about to line up. On return from my run, I hit the web to test the theory, and sure enough, there it was…
From my doorstep to Jefferson Park, Seattle, site of Saturday's festivities, as the crow flies, two thousand four hundred and sixty five miles. For those of you seeking the instant replay to verify the call on the field, we can zoom in a bit without giving away too many state secrets to verify this is the actual point to point distance. From my doorstep…
To the starting line in Seattle…
Two thousand four hundred and sixty five miles.
And here's the nerdy bit. As of this morning, my mileage total for the year is two thousand four hundred and eleven miles. A mere fifty four miles short. Not exact, but pretty darn close. Had I noticed this a week or two back, I could have piled in a few more and made it perfect, but at this point it's too close to race day and the body needs some rest, so I'll settle for a few short runs between now and then and end up around thirty miles off. Still pretty close, within a margin of error, close enough to point out the irony. I've literally run to Seattle.
Telling Darling Daughter this brought on the title comment. True. Guilty. Nerdy. Proud of it.
But fitting. It's been a year that's brought a number of satisfying racing successes and already by far a Second Lap annual mileage record, and barring injury, will shortly bring an all-time record surpassing those youthful days. All of this led up to the call up to the GBTC team, which opened the door to toe the line at a race called National Championship, which I've come to grips with but still feel a big "wow" every time it comes through my head. All those miles, about two thousand four hundred and close to sixty five of them… Indeed, this year I've run to Seattle.
Let's race!


text:
World News Observer
AmericaAmerica PoliticsFeatured
Trump's conditional love to President Xi" Resolve HK problem quickly before we meet again"
By Zubair Yaqoob
Join Our Telegram ChannelClick to join
WorldRobert Frank - January 16, 2021 0
Azerbaijan to start vaccinating citizens from next Monday
The doses of the Chinese anti-corona virus vaccine will be transported first to Turkey, where they will be examined...
AM-PoliticsRobert Frank - January 14, 2021 0
Adam Schiff: Donald Trump must be removed
Adam Schiff, Chairman of the Intelligence Committee in the US House of Representatives, affirmed that they continue to defend...
AsiaHailey Warner - January 14, 2021 0
Indonesia proposed a budget of 1.5 billion dollars for Chinese Sinovac vaccine
Indonesia has proposed a budget of 20.9 trillion rupees ($ 1.49 billion) to buy the Coronavirus vaccine from Sinovac,...
Zubair Yaqoob
The author has diversified experience in investigative journalism. He is Chief content editor at wnobserver.com He can be reached at: [email protected]
US Secretary of Commerce Wilbur Ross described the HK problem as Beijing's "internal affair" and rejected any connection with the US-China trade dispute. But not only opposition Democrats have expressed their displeasure that the President is not clearly on their side.
Even prominent Republicans and conservative commentators call for Donald Trump to make a clear commitment to democracy and freedom. Finally, on Wednesday evening Trump first established a connection between the trade dispute and the protests in the former British colony.
Trump wrote on Twitter, "Of course China wants to close a deal. Do you want to take care of Hong Kong first? "Trump also suggested an American-Chinese summit meeting. "I know China's President Xi very well," he wrote in another tweet. "He is a great statesman who enjoys the respect of his people and he is a good man in a 'hard business'. I have no doubt that President Xi could solve the HK problem quickly and humanely if he wants. Personal meeting?"
From many sides at once information hailed on Trump that Xi never engage in negotiating with the US president about the "internal issue" of Hong Kong. But perhaps he had just been misunderstood and had rather wanted to initiate a "personal meeting" between Xi and the protesters.
Donald John Trump did that on Thursday: "If President Xi met with the demonstrators directly and personally," Trump said in a new tweet, "then there would be a happy and enlightened end to the HK problem. I have no doubts! "Later, the US President added," He (Trump) will solve the problem.
Either way, Trump must have pursued two main goals: to dampen the criticism of his policy of non-interference and to push Beijing into the black market in the trade dispute. This week Trump had been forced to make an embarrassing backslide.
Donald Trump postponed the tariffs announced for September on smartphones, laptops, and other consumer goods so as not to spoil US retailers' Christmas party ahead of the presidential election.
Never before Trump had to admit so clearly that the tariffs by no means hit only China, but also American consumers. As far as known, the US President received no compensation for his retreat from Beijing.
The "good man" Xi obviously wants to be able to sit out the Trump presidency and its tariff escalation. If Trump now links the trade dispute with HK problem, he can use the domestic policy to blame Beijing for lack of progress.
Read also: China suspects coup attempt in Hong Kong by the United States
As You Likee: Express more, Create more with Likee's In-App Features
Ammar Muzzaffar - January 14, 2021 0
The online short videos platform is rapidly becoming the content production application of choice for hundreds of thousands of Pakistanis to showcase their creativity,...
AM-Politics
Robert Frank - January 14, 2021 0
Adam Schiff, Chairman of the Intelligence Committee in the US House of Representatives, affirmed that they continue to defend the democracy of the United...
Hailey Warner - January 14, 2021 0
Indonesia has proposed a budget of 20.9 trillion rupees ($ 1.49 billion) to buy the Coronavirus vaccine from Sinovac, the Indonesian health minister said...
IFN declares SBP as top central bank for promoting Islamic finance
Zubair Yaqoob - January 13, 2021 0
State Bank of Pakistan (SBP) has been voted as the Best Central Bank in promoting Islamic finance for the fourth time by a poll...
World Robert Frank - January 16, 2021 0
The doses of the Chinese anti-corona virus vaccine will be transported first to Turkey, where they will be examined and packed, before arriving in...
AM-Politics Robert Frank - January 14, 2021 0
Asia Hailey Warner - January 14, 2021 0
Pakistan Zubair Yaqoob - January 13, 2021 0
© World News Observer - 2019 | All rights reserved.