text:
/*!
 * \file
 * \brief EGL image tests.
 *//*--------------------------------------------------------------------*/

#include "teglImageTests.hpp"

#include "teglImageUtil.hpp"
#include "teglAndroidUtil.hpp"
#include "teglImageFormatTests.hpp"

#include "egluNativeDisplay.hpp"
#include "egluNativeWindow.hpp"
#include "egluNativePixmap.hpp"
#include "egluStrUtil.hpp"
#include "egluUnique.hpp"
#include "egluUtil.hpp"
#include "egluGLUtil.hpp"

#include "eglwLibrary.hpp"
#include "eglwEnums.hpp"

#include "gluDefs.hpp"
#include "gluCallLogWrapper.hpp"
#include "gluObjectWrapper.hpp"
#include "gluStrUtil.hpp"

#include "glwDefs.hpp"
#include "glwEnums.hpp"

#include "tcuTestLog.hpp"
#include "tcuCommandLine.hpp"

#include "deUniquePtr.hpp"

#include <algorithm>
#include <sstream>
#include <string>
#include <vector>
#include <set>

using tcu::TestLog;

using std::string;
using std::vector;
using std::set;
using std::ostringstream;

using de::MovePtr;
using de::UniquePtr;
using glu::ApiType;
using glu::ContextType;
using glu::Texture;
using eglu::AttribMap;
using eglu::NativeWindow;
using eglu::NativePixmap;
using eglu::UniqueImage;
using eglu::UniqueSurface;
using eglu::ScopedCurrentContext;

using namespace glw;
using namespace eglw;

namespace deqp
{
namespace egl
{

namespace Image
{

#define CHECK_EXTENSION(DPY, EXTNAME) \
	TCU_CHECK_AND_THROW(NotSupportedError, eglu::hasExtension(m_eglTestCtx.getLibrary(), DPY, EXTNAME), (string("Unsupported extension: ") + EXTNAME).c_str())

template <typename RetVal>
RetVal checkCallError (EglTestContext& eglTestCtx, const char* call, RetVal returnValue, EGLint expectError)
{
	tcu::TestContext&	testCtx		= eglTestCtx.getTestContext();
	TestLog&			log			= testCtx.getLog();
	EGLint				error;

	log << TestLog::Message << call << TestLog::EndMessage;

	error = eglTestCtx.getLibrary().getError();

	if (error != expectError)
	{
		log << TestLog::Message << "  Fail: Error code mismatch! Expected " << eglu::getErrorStr(expectError) << ", got " << eglu::getErrorStr(error) << TestLog::EndMessage;
		log << TestLog::Message << "  " << returnValue << " was returned" << TestLog::EndMessage;

		if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
			testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Invalid error code");
	}

	return returnValue;
}

template <typename RetVal>
void checkCallReturn (EglTestContext& eglTestCtx, const char* call, RetVal returnValue, RetVal expectReturnValue, EGLint expectError)
{
	tcu::TestContext&	testCtx		= eglTestCtx.getTestContext();
	TestLog&			log			= testCtx.getLog();
	EGLint				error;

	log << TestLog::Message << call << TestLog::EndMessage;

	error = eglTestCtx.getLibrary().getError();

	if (returnValue != expectReturnValue)
	{
		log << TestLog::Message << "  Fail: Return value mismatch! Expected " << expectReturnValue << ", got " << returnValue << TestLog::EndMessage;

		if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
			testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Invalid return value");
	}

	if (error != expectError)
	{
		log << TestLog::Message << "  Fail: Error code mismatch! Expected " << eglu::getErrorStr(expectError) << ", got " << eglu::getErrorStr(error) << TestLog::EndMessage;

		if (testCtx.getTestResult() == QP_TEST_RESULT_PASS)
			testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Invalid error code");
	}
}

// \note These macros expect "EglTestContext m_eglTestCtx" to be defined.
#define CHECK_EXT_CALL_RET(CALL, EXPECT_RETURN_VALUE, EXPECT_ERROR)	checkCallReturn(m_eglTestCtx, #CALL, CALL, (EXPECT_RETURN_VALUE), (EXPECT_ERROR))
#define CHECK_EXT_CALL_ERR(CALL, EXPECT_ERROR)						checkCallError(m_eglTestCtx, #CALL, CALL, (EXPECT_ERROR))

class ImageTestCase : public TestCase, public glu::CallLogWrapper
{
public:
				ImageTestCase		(EglTestContext& eglTestCtx, ApiType api, const string& name, const string& desc)
					: TestCase				(eglTestCtx, name.c_str(), desc.c_str())
					, glu::CallLogWrapper	(m_gl, m_testCtx.getLog())
					, m_api					(api)
					, m_display				(EGL_NO_DISPLAY)
	{
	}

	void		init				(void)
	{
		DE_ASSERT(m_display == EGL_NO_DISPLAY);
		m_display = eglu::getAndInitDisplay(m_eglTestCtx.getNativeDisplay());

		const char* extensions[] = { "GL_OES_EGL_image" };
		m_eglTestCtx.initGLFunctions(&m_gl, m_api, DE_LENGTH_OF_ARRAY(extensions), &extensions[0]);
	}

	void		deinit				(void)
	{
		m_eglTestCtx.getLibrary().terminate(m_display);
		m_display = EGL_NO_DISPLAY;
	}

protected:
	glw::Functions	m_gl;
	ApiType			m_api;
	EGLDisplay		m_display;
};

class InvalidCreateImage : public ImageTestCase
{
public:
	InvalidCreateImage (EglTestContext& eglTestCtx)
		: ImageTestCase(eglTestCtx, ApiType::es(2, 0), "invalid_create_image", "eglCreateImageKHR() with invalid arguments")
	{
	}

	void checkCreate (const char* desc, EGLDisplay dpy, const char* dpyStr, EGLContext context, const char* ctxStr, EGLenum source, const char* srcStr, EGLint expectError);

	IterateResult iterate (void)
	{
#define CHECK_CREATE(MSG, DPY, CONTEXT, SOURCE, ERR) checkCreate(MSG, DPY, #DPY, CONTEXT, #CONTEXT, SOURCE, #SOURCE, ERR)
		CHECK_CREATE("Testing bad display (-1)...", (EGLDisplay)-1, EGL_NO_CONTEXT, EGL_NONE, EGL_BAD_DISPLAY);
		CHECK_CREATE("Testing bad context (-1)...", m_display, (EGLContext)-1, EGL_NONE, EGL_BAD_CONTEXT);
		CHECK_CREATE("Testing bad source (-1)...", m_display, EGL_NO_CONTEXT, (EGLenum)-1, EGL_BAD_PARAMETER);
#undef CHECK_CREATE

		m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
		return STOP;
	}

};

void InvalidCreateImage::checkCreate (const char* msg, EGLDisplay dpy, const char* dpyStr, EGLContext context, const char* ctxStr, EGLenum source, const char* srcStr, EGLint expectError)
{
	m_testCtx.getLog() << TestLog::Message << msg << TestLog::EndMessage;
	{
		const Library&		egl		= m_eglTestCtx.getLibrary();
		const EGLImageKHR	image	= egl.createImageKHR(dpy, context, source, 0, DE_NULL);
		ostringstream		call;

		call << "eglCreateImage(" << dpyStr << ", " << ctxStr << ", " << srcStr << ", 0, DE_NULL)";
		checkCallReturn(m_eglTestCtx, call.str().c_str(), image, EGL_NO_IMAGE_KHR, expectError);
	}
}

EGLConfig chooseConfig (const Library& egl, EGLDisplay display, ApiType apiType)
{
	AttribMap				attribs;
	vector<EGLConfig>		configs;
	// Prefer configs in order: pbuffer, window, pixmap
	static const EGLenum	s_surfaceTypes[] = { EGL_PBUFFER_BIT, EGL_WINDOW_BIT, EGL_PIXMAP_BIT };

	attribs[EGL_RENDERABLE_TYPE] = eglu::apiRenderableType(apiType);

	for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(s_surfaceTypes); ++ndx)
	{
		attribs[EGL_SURFACE_TYPE] = s_surfaceTypes[ndx];
		configs = eglu::chooseConfigs(egl, display, attribs);

		if (!configs.empty())
			return configs.front();
	}

	TCU_THROW(NotSupportedError, "No compatible EGL configs found");
	return (EGLConfig)0;
}

class Context
{
public:
								Context			(EglTestContext& eglTestCtx, EGLDisplay display, ContextType ctxType, int width, int height)
									: m_eglTestCtx	(eglTestCtx)
									, m_display		(display)
									, m_config		(chooseConfig(eglTestCtx.getLibrary(), display, ctxType.getAPI()))
									, m_context		(m_eglTestCtx.getLibrary(), m_display, eglu::createGLContext(eglTestCtx.getLibrary(), m_display, m_config, ctxType))
									, m_surface		(createSurface(eglTestCtx, m_display, m_config, width, height))
									, m_current		(eglTestCtx.getLibrary(), m_display, m_surface->get(), m_surface->get(), *m_context)
	{
		m_eglTestCtx.initGLFunctions(&m_gl, ctxType.getAPI());
	}

	EGLConfig					getConfig		(void) const { return m_config; }
	EGLDisplay 					getEglDisplay	(void) const { return m_display; }
	EGLContext 					getEglContext	(void) const { return *m_context; }
	const glw::Functions&		gl				(void) const { return m_gl; }

private:
	EglTestContext&				m_eglTestCtx;
	EGLDisplay					m_display;
	EGLConfig					m_config;
	eglu::UniqueContext			m_context;
	UniquePtr<ManagedSurface>	m_surface;
	ScopedCurrentContext		m_current;
	glw::Functions				m_gl;

								Context			(const Context&);
	Context&					operator=		(const Context&);
};

class CreateImageGLES2 : public ImageTestCase
{
public:
	static const char* getTargetName (EGLint target)
	{
		switch (target)
		{
			case EGL_GL_TEXTURE_2D_KHR:						return "tex2d";
			case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR:	return "cubemap_pos_x";
			case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR:	return "cubemap_neg_x";
			case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR:	return "cubemap_pos_y";
			case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR:	return "cubemap_neg_y";
			case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR:	return "cubemap_pos_z";
			case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR:	return "cubemap_neg_z";
			case EGL_GL_RENDERBUFFER_KHR:					return "renderbuffer";
			case EGL_NATIVE_BUFFER_ANDROID:					return "android_native";
			default:		DE_ASSERT(DE_FALSE);			return "";
		}
	}

	static const char* getStorageName (GLenum storage)
	{
		switch (storage)
		{
			case GL_RGB:				return "rgb";
			case GL_RGBA:				return "rgba";
			case GL_DEPTH_COMPONENT16:	return "depth_component_16";
			case GL_RGBA4:				return "rgba4";
			case GL_RGB5_A1:			return "rgb5_a1";
			case GL_RGB565:				return "rgb565";
			case GL_RGB8:				return "rgb8";
			case GL_RGBA8:				return "rgba8";
			case GL_STENCIL_INDEX8:		return "stencil_index8";
			default:
				DE_ASSERT(DE_FALSE);
				return "";
		}
	}

	MovePtr<ImageSource> getImageSource (EGLint target, GLenum format, bool useTexLevel0)
	{
		switch (target)
		{
			case EGL_GL_TEXTURE_2D_KHR:
			case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR:
			case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR:
			case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR:
			case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR:
			case EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR:
			case EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR:
				return createTextureImageSource(target, format, GL_UNSIGNED_BYTE, useTexLevel0);
			case EGL_GL_RENDERBUFFER_KHR:
				return createRenderbufferImageSource(format);
			case EGL_NATIVE_BUFFER_ANDROID:
				return createAndroidNativeImageSource(format);
			default:
				DE_ASSERT(!"Impossible");
				return MovePtr<ImageSource>();
		}
	}

	CreateImageGLES2 (EglTestContext& eglTestCtx, EGLint target, GLenum storage, bool useTexLevel0 = false)
		: ImageTestCase		(eglTestCtx, ApiType::es(2, 0), string("create_image_gles2_") + getTargetName(target) + "_" + getStorageName(storage) + (useTexLevel0 ? "_level0_only" : ""), "Create EGLImage from GLES2 object")
		, m_source			(getImageSource(target, storage, useTexLevel0))
	{
	}

	IterateResult iterate (void)
	{
		const Library&			egl				= m_eglTestCtx.getLibrary();
		const EGLDisplay		dpy				= m_display;

		if (eglu::getVersion(egl, dpy) < eglu::Version(1, 5))
			CHECK_EXTENSION(dpy, m_source->getRequiredExtension());

		// Initialize result.
		m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");

		// Create GLES2 context
		TestLog&				log				= m_testCtx.getLog();
		const ContextType		contextType		(ApiType::es(2, 0));
		Context					context			(m_eglTestCtx, dpy, contextType, 64, 64);
		const EGLContext		eglContext		= context.getEglContext();

		log << TestLog::Message << "Using EGL config " << eglu::getConfigID(egl, dpy, context.getConfig()) << TestLog::EndMessage;

		UniquePtr<ClientBuffer>	clientBuffer	(m_source->createBuffer(context.gl()));
		const EGLImageKHR		image			= m_source->createImage(egl, dpy, eglContext, clientBuffer->get());

		if (image == EGL_NO_IMAGE_KHR)
		{
			log << TestLog::Message << "  Fail: Got EGL_NO_IMAGE_KHR!" << TestLog::EndMessage;

			if (m_testCtx.getTestResult() == QP_TEST_RESULT_PASS)
				m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got EGL_NO_IMAGE_KHR");
		}

		// Destroy image
		CHECK_EXT_CALL_RET(egl.destroyImageKHR(context.getEglDisplay(), image), (EGLBoolean)EGL_TRUE, EGL_SUCCESS);

		return STOP;
	}

private:
	UniquePtr<ImageSource>	m_source;
};

class ImageTargetGLES2 : public ImageTestCase
{
public:
	static const char* getTargetName (GLenum target)
	{
		switch (target)
		{
			case GL_TEXTURE_2D:		return "tex2d";
			case GL_RENDERBUFFER:	return "renderbuffer";
			default:
				DE_ASSERT(DE_FALSE);
				return "";
		}
	}

	ImageTargetGLES2 (EglTestContext& eglTestCtx, GLenum target)
		: ImageTestCase	(eglTestCtx, ApiType::es(2, 0), string("image_target_gles2_") + getTargetName(target), "Use EGLImage as GLES2 object")
		, m_target		(target)
	{
	}

	IterateResult iterate (void)
	{
		const Library&	egl	= m_eglTestCtx.getLibrary();
		TestLog&		log	= m_testCtx.getLog();

		// \todo [2011-07-21 pyry] Try all possible EGLImage sources
		CHECK_EXTENSION(m_display, "EGL_KHR_gl_texture_2D_image");

		// Initialize result.
		m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");

		// Create GLES2 context

		Context context(m_eglTestCtx, m_display, ContextType(ApiType::es(2, 0)), 64, 64);
		log << TestLog::Message << "Using EGL config " << eglu::getConfigID(m_eglTestCtx.getLibrary(), context.getEglDisplay(), context.getConfig()) << TestLog::EndMessage;

		// Check for OES_EGL_image
		{
			const char* glExt = (const char*)glGetString(GL_EXTENSIONS);

			if (string(glExt).find("GL_OES_EGL_image") == string::npos)
				throw tcu::NotSupportedError("Extension not supported", "GL_OES_EGL_image", __FILE__, __LINE__);

			TCU_CHECK(m_gl.eglImageTargetTexture2DOES);
			TCU_CHECK(m_gl.eglImageTargetRenderbufferStorageOES);
		}

		// Create GL_TEXTURE_2D and EGLImage from it.
		log << TestLog::Message << "Creating EGLImage using GL_TEXTURE_2D with GL_RGBA storage" << TestLog::EndMessage;

		deUint32 srcTex = 1;
		GLU_CHECK_CALL(glBindTexture(GL_TEXTURE_2D, srcTex));
		GLU_CHECK_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 64, 64, 0, GL_RGBA, GL_UNSIGNED_BYTE, DE_NULL));
		GLU_CHECK_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR));

		// Create EGL image
		EGLint		attribs[]	= { EGL_GL_TEXTURE_LEVEL_KHR, 0, EGL_NONE };
		EGLImageKHR	image		= CHECK_EXT_CALL_ERR(egl.createImageKHR(context.getEglDisplay(), context.getEglContext(), EGL_GL_TEXTURE_2D_KHR, (EGLClientBuffer)(deUintptr)srcTex, attribs), EGL_SUCCESS);
		if (image == EGL_NO_IMAGE_KHR)
		{
			log << TestLog::Message << "  Fail: Got EGL_NO_IMAGE_KHR!" << TestLog::EndMessage;

			if (m_testCtx.getTestResult() == QP_TEST_RESULT_PASS)
				m_testCtx.setTestResult(QP_TEST_RESULT_FAIL, "Got EGL_NO_IMAGE_KHR");
		}

		// Create texture or renderbuffer
		if (m_target == GL_TEXTURE_2D)
		{
			log << TestLog::Message << "Creating GL_TEXTURE_2D from EGLimage" << TestLog::EndMessage;

			deUint32 dstTex = 2;
			GLU_CHECK_CALL(glBindTexture(GL_TEXTURE_2D, dstTex));
			GLU_CHECK_CALL(glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, (GLeglImageOES)image));
			GLU_CHECK_CALL(glDeleteTextures(1, &dstTex));
		}
		else
		{
			DE_ASSERT(m_target == GL_RENDERBUFFER);

			log << TestLog::Message << "Creating GL_RENDERBUFFER from EGLimage" << TestLog::EndMessage;

			deUint32 dstRbo = 2;
			GLU_CHECK_CALL(glBindRenderbuffer(GL_RENDERBUFFER, dstRbo));
			GLU_CHECK_CALL(glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, (GLeglImageOES)image));
			GLU_CHECK_CALL(glDeleteRenderbuffers(1, &dstRbo));
		}

		// Destroy image
		CHECK_EXT_CALL_RET(egl.destroyImageKHR(context.getEglDisplay(), image), (EGLBoolean)EGL_TRUE, EGL_SUCCESS);

		// Destroy source texture object
		GLU_CHECK_CALL(glDeleteTextures(1, &srcTex));

		return STOP;
	}

private:
	GLenum	m_target;
};

class ApiTests : public TestCaseGroup
{
public:
	ApiTests (EglTestContext& eglTestCtx, const string& name, const string& desc) : TestCaseGroup(eglTestCtx, name.c_str(), desc.c_str()) {}

	void init (void)
	{
		addChild(new Image::InvalidCreateImage(m_eglTestCtx));

		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_2D_KHR, GL_RGB));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_2D_KHR, GL_RGBA));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_2D_KHR, GL_RGBA, true));

		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR, GL_RGB));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR, GL_RGBA));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR, GL_RGBA, true));

		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR, GL_RGBA));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR, GL_RGBA));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR, GL_RGBA));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR, GL_RGBA));
		addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR, GL_RGBA));

		static const GLenum rboStorages[] =
		{
			GL_DEPTH_COMPONENT16,
			GL_RGBA4,
			GL_RGB5_A1,
			GL_RGB565,
			GL_STENCIL_INDEX8
		};
		for (int storageNdx = 0; storageNdx < DE_LENGTH_OF_ARRAY(rboStorages); storageNdx++)
			addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_GL_RENDERBUFFER_KHR, rboStorages[storageNdx]));

		static const GLenum androidFormats[] =
		{
			GL_RGB565,
			GL_RGB8,
			GL_RGBA4,
			GL_RGB5_A1,
			GL_RGBA8,
		};

		for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(androidFormats); ++formatNdx)
			addChild(new Image::CreateImageGLES2(m_eglTestCtx, EGL_NATIVE_BUFFER_ANDROID, androidFormats[formatNdx]));

		addChild(new Image::ImageTargetGLES2(m_eglTestCtx, GL_TEXTURE_2D));
		addChild(new Image::ImageTargetGLES2(m_eglTestCtx, GL_RENDERBUFFER));
	}
};

} // Image

ImageTests::ImageTests (EglTestContext& eglTestCtx)
	: TestCaseGroup(eglTestCtx, "image", "EGLImage Tests")
{
}

ImageTests::~ImageTests (void)
{
}

void ImageTests::init (void)
{
	addChild(new Image::ApiTests(m_eglTestCtx, "api", "EGLImage API tests"));
	addChild(Image::createSimpleCreationTests(m_eglTestCtx, "create", "EGLImage creation tests"));
	addChild(Image::createModifyTests(m_eglTestCtx, "modify", "EGLImage modifying tests"));
	addChild(Image::createMultiContextRenderTests(m_eglTestCtx, "render_multiple_contexts", "EGLImage render tests on multiple contexts"));
}

} // egl
} // deqp

redpajama_set_name: RedPajamaGithub


Fun film. I really liked it.
good one... cool stunts... treat your actor with a beer from my side. :) Please give your feedback on my film '4*60 seconds'.
Race against the ketchup, huh? LOL! Great cinematography and stunt work! Please watch my entry, 'Deadline'.
great ideia and nice images!
Great. Should be a comercial for the Ketchup.
This guy could probably catch James Bond in a chase. Well put together.
Nice film. I liked it. Very entertaining. Great camera work. Awesome, real energy acting. Amazing race bouncing off walls and footwork.
Love it from the beginning unti the end!! great shots!!!
Great film on all levels. Agree that it would be an excellent commercial concept. It ROCKS the screen. Well done. Please check out "The sands of Time"
Dude, this is incredible ... esp. considering its done with 0 budget. U could really us it as a spec for getting a sweet commercial deal.
I admire this actors ability and freedom, but I think you could do interesting film and not just commercial, maybe for a ketchup or hamburger or snickers or what ever because nothing is emphasized. I do not believe in it, because we all know that ketchup does not need so much time to start to flow from the bottle. Even when we speak about film time we need credibility. Very good choice of shots and excellent connection with music. Good luck!
good fun. the fly was a nice touch.
clever use of a ketchup bottle to time a very cool obstacle course. I especially enjoyed the trip down the stairwell, so fun!
Thanks everyone for your feedback, it is always much appreciated. For those who gleaned a commercial-feel, absolutely. It did begin as a commercial concept, but I felt the footage and the talent of the performer merited a film, in that the concept tells a story more about the character and less about selling something. As for Srdan, clearly you are not familiar with certain glass ketchup bottles which are newly opened: unless smacked repeatedly, the ketchup does not flow. In fact, it is doubtful even the single drop would result after 3 minutes left upside down with no smacking. Please give it a try and let us all know!
I liked your camera work on this. Great pacing and that contraption added to the magic. Nice work.
Yep, that guy is real parkour-man) I like it!
To clarify my older - perhaps too cryptic comment - I am familiar with certain glass ketchup bottles and I was so impressed by your ability to make something beautiful out of something irritating that I had to give this piece my vote.
It's not easy to make a three minute film where the viewer feels breathless at the end, but you certainly achieved it with this one. Good work, Hedia! Please watch my entry, "Planet Shift".
Very athletic guy, Nice cinematography, should be used in a Ketchup Commercial. Great work.
mind blowing jaw dropping amazing man .. your lead is awesome and your shots direction...oo god!!
Thanks for your kind words on The Wilkinson Test. Loved The Course, Simple, funny & exciting. Nice work. consider yourself voted for.
hey, that was really fun! cool little idea, great shots! good luck with it!
Ha! A Great Film with Great Performance!
I like the style and the editing of your films. This one seems to me more conventional, but I think that was the most appropriate for this story.
Neat and simple concept executed superbly! Great work.


text:
Head to head: iPhone 3GS vs HTC Hero
It's a clash of the titans as the flagship Android handset, the HTC Hero, goes up against Apple's golden child the iPhone 3GS.
by: Maggie Holland
2. Head to head: iPhone 3GS vs HTC Hero
The iPhone 3GS and Hero also share the existence of a 3.5mm headphone jack which can often be a deal breaker for users who aren't prepared to use anything but the best headphones.
Both handsets are also available in black and white, with size (8GB or 16GB) the only restriction determining which hue you can have when it comes to the iPhone 3GS.
There's not much in it screen-wise between the two handsets, with the iPhone just edging ahead of the HTC Hero with its 3.5in display to its 3.2in offering. The two mobile heavyweights are also level pegged when it comes to weight at 135g a piece.
Getting out our measuring tape also proved an interesting experience as, although the two handsets clearly differ in size in the hand, when you look at the stats on paper there's not a world of difference between them, with the iPhone 3GS measuring 62.1mmx12.3mmx115.5mm (WDH) to the Hero's 56.2mmx14.4mmx112mm (WDH).
While the iPhone 3GS comes in either 8GB or 16GB format, you can't top up storage through external cards. That's not the case with the Hero which has 288MB onboard memory and a microSD card slot for that all-important boost. Both are more than adequate for the average business user's needs.
Head to head: iPhone 3GS vs HTC Hero - currently reading

redpajama_set_name: RedPajamaCommonCrawl


text:
Operation Red Sea
A squad of the Jiaolong Commando Unit – Sea Dragon, a spec ops team of the Chinese Navy, carries out a hostage rescue operation in the nation of Yewaire, on the Arabian Peninsula, and fiercely fights against local rebel groups and Zaka, a terrorist organization.
Genre: Action, Drama, Thriller, War
Director: Dante Lam
Actors: Du Jiang, Fang Yin, Hai Qing, Jiang Luxia, Johnny Huang, Sanaa Alaoui, Zhang Yi
Country: China, Hong Kong, Morocco
Keywords:operation
Death Warrant
The Canadian policeman Louis Burke is assigned in a jail to investigate in some murders of prisoners and jailors. When in jail, Lois, using his outstandings martial arts is able…
In the harsh terrain of the Mexican desert, a mortally wounded man is left for dead in the heat of the desert sun. This is Jay. Once a street smart,…
Genre: Action, Drama, Romance
A teenager attends a fantasy writers' convention where he discovers his idea has been stolen by an established novelist.
Genre: Action, Comedy, Thriller
The seemingly invincible Spider-Man goes up against an all-new crop of villains – including the shape-shifting Sandman. While Spider-Man's superpowers are altered by an alien organism, his alter ego, Peter…
Genre: Action, Adventure, Fantasy
The Sorcerer and the White Snake
The Sorcerer and the White Snake is an ancient Chinese fable about a woman demon who falls in love with a mortal is brought to life through the latest advances…
Country: China, Hong Kong
The fates of horses, and the people who own and command them, are revealed as Black Beauty narrates the circle of his life.
Genre: Action, Adventure, Drama, Family
Vengeance of an Assassin
Panna Rittikrai's final film sees a betrayed Assassin take his revenge.
Jack Sparrow, a freewheeling 17th-century pirate, quarrels with a rival pirate bent on pillaging Port Royal. When the governor's daughter is kidnapped, Sparrow decides to help the girl's love save…
Tom Ludlow is a disillusioned L.A. Police Officer, rarely playing by the rules and haunted by the death of his wife. When evidence implicates him in the execution of a…
Two homicide detectives try to find just the facts behind a mobster's brutal murder.
Genre: Action, Adventure, Crime, Drama, Thriller
Oscar is a small fish whose big aspirations often get him into trouble. Meanwhile, Lenny is a great white shark with a surprising secret that no sea creature would guess:…
Dead in Tombstone
An outlaw named Guerrero Hernandez is shot in the back and killed whilst attempting to free his half-brother from a small-town prison. Making a deal with the devil, Hernandez returns…
Genre: Action, Drama, Fantasy, Horror, Western
Trailer: Operation Red Sea


text:
Australians living longer - with or without disabilities
A new report released today by the Australian Institute of Health and Welfare examines trends in life and health expectancy for people with and without disabilities over the period from 1988 to 2003.
The report, Life expectancy and disability in Australia 1988-2003, examines whether the years of life lived with disability are increasing along with overall gains in life expectancy.
'While life expectancy refers to the average number of years a person of a given age and sex can expect to live, health expectancy extends that concept to include disease and disability, and refers to the number of years a person could expect to live in a defined state of health,' explains report author Dr Xingyan Wen.
'As people are living longer, they are living a greater part of their life with a disability. This is especially true for older Australians, although this related chiefly to those with a less severe disability.
'The ageing of the Australian population and the greater longevity of individuals are leading to more people, especially those at older ages, with a disability,' Dr Wen said.
Overall, females had higher life and health expectancies than males, in both the years with disability and the years free from disability, although these gaps were much smaller at older ages.
In 2003, males could expect, on average, to experience 18.6 years of life with a disability, whereas females could expect 20.7 years of life lived with a disability.
Those figures changed when the disability was severe, or profoundly activity limiting, for example when assistance was needed for self-care, mobility and/or communication. In those cases, the figures dropped to 5.4 years for males and to 8.3 years for females.
However, the proportion of expected life free from disability and, in particular, free from a severe or profound activity limitation, was lower for older females than for older males.
Life expectancy and disability in Australia 1988 to 2003 01 Sep 2006


The Roman chamomile from the sunflower family is native to Southern, Central and Western Europe. It has antiseptic and antibacterial properties and is also known for its wound healing abilities. In skin care, it is suitable for the treatment of acne, eczema, atopic dermatitis and sore skin. Inflammatory skin and insect bites could also be relieved with chamomile, and it is also well suited to hair care. It can also help relieve muscle pain and small burns.
In aromatherapy, the Roman Chamomile is considered to be calming, emotionally warming and anticonvulsant. It helps with stress, anxiety and depression, sleep disturbances and restlessness.


The seasons are changing and the days are growing colder, but that means it's almost time for everyone's favorite festival of the Fall!
Presented by Double Fine Productions and iam8bit, Day of the Devs returns to The Midway in San Francisco on November 11 for it's 6th annual celebration of games.
There will be more than 70 unreleased games there for you to play, celebrating some of the year's best indie and AAA titles, with a few exclusive debuts and excellent live music from Chipzel, Hydelic, and Doseone!
If you are interested in attending you can RSVP here (admission is FREE).
2018 will mark the 6th annual Day of the Devs, a now time-honored tradition in the San Francisco game scene. Last year brought together more than 75 inspiring games and developers together to celebrate with over 7,000 fans, great music, and loads of awesome treats and surprises all free with no costs either to developers or attendees.


China has ordered 10 deadly Russian Kilo Class submarines with plans to close off its nearby shipping lanes and take over Taiwan. When Pentagon officials discover the sinister purchase, they assign the irascible Vice Admiral Arnold Morgan to stop delivery of the stealthy diesel-powered subs. Soon, the Navy's secret Black Op hit squads are embarking on missions so dangerous, one mistake could plunge the nations into World War III.


text:
(1825-01-11)January 11, 1825
Chester County, Pennsylvania, United States
Berlin, German Empire
Longwood Cemetery, Kennett Square, Pennsylvania, U.S.[1]
Bayard Taylor (January 11, 1825 – December 19, 1878) was an American poet, literary critic, translator, travel author, and diplomat.
Life and work
Legacy and honors
Taylor was born on January 11, 1825,[2] in Kennett Square in Chester County, Pennsylvania. He was the fourth son, the first to survive to maturity, of the Quaker couple, Joseph and Rebecca (née Way) Taylor.[3] His father was a wealthy farmer. Bayard received his early instruction in an academy at West Chester, Pennsylvania, and later at nearby Unionville. At the age of seventeen, he was apprenticed to a printer in West Chester.[4] The influential critic and editor Rufus Wilmot Griswold encouraged him to write poetry. The volume that resulted, Ximena, or the Battle of the Sierra Morena, and other Poems, was published in 1844 and dedicated to Griswold.[5]
Using the money from his poetry and an advance for travel articles, he visited parts of England, France, Germany and Italy, making largely pedestrian tours for almost two years. He sent accounts of his travels to the Tribune, The Saturday Evening Post, and The United States Gazette.[4]
In 1846, he published a collection of those articles in two volumes as Views Afoot, or Europe seen with Knapsack and Staff.[4] That publication resulted in an invitation to serve as an editorial assistant for Graham's Magazine for a few months in 1848.[6] That same year, Horace Greeley, editor of the New York Tribune, hired Taylor and sent him to California to report on the gold rush. He returned by way of Mexico and published another two-volume collection of travel essays, El Dorado; or, Adventures in the Path of Empire (1850). Within two weeks of release, the books sold 10,000 copies in the U.S. and 30,000 in Great Britain.[4]
Illustration of San Francisco in November 1849, from publication El Dorado.
In 1849 Taylor married Mary Agnew, who died of tuberculosis the next year.[7] That same year, Taylor won a popular competition sponsored by P. T. Barnum to write an ode for the "Swedish Nightingale", singer Jenny Lind. His poem "Greetings to America" was set to music by Julius Benedict and performed by the singer at numerous concerts on her tour of the United States.[8]
In 1851 he traveled to Egypt, where he followed the Nile River as far as 12° 30' N. He also traveled in Palestine and Mediterranean countries, writing poetry based on his experiences. Toward the end of 1852, he sailed from England to Calcutta, and then to China, where he joined the expedition of Commodore Matthew Calbraith Perry to Japan.[4] The results of these journeys were published as A Journey to Central Africa; or, Life and Landscapes from Egypt to the Negro Kingdoms of the White Nile (1854); The Lands of the Saracen; or, Pictures of Palestine, Asia Minor, Sicily and Spain (1854); and A Visit to India, China and Japan in the Year 1853 (1855).[4]
He returned to the U.S. on December 20, 1853, and undertook a successful public lecturer tour that extended from Maine to Wisconsin. After two years, he went to northern Europe to study Swedish life, language and literature. The trip inspired his long narrative poem Lars. His series of articles Swedish Letters to the Tribune were republished as Northern Travel: Summer and Winter Pictures (1857).
In Berlin in 1856, Taylor met the great German scientist Alexander von Humboldt, hoping to interview him for the New York Tribune. Humboldt was welcoming, and inquired whether they should speak English or German. Taylor planned to go to central Asia, where Humboldt had traveled in 1829. Taylor informed Humboldt of Washington Irving's death; Humboldt had met him in Paris. Taylor saw Humboldt again in 1857 at Potsdam.[9]
In October 1857, he married Maria Hansen, the daughter of the Danish/German astronomer Peter Hansen. The couple spent the following winter in Greece.[4] In 1859 Taylor returned to the American West and lectured at San Francisco.
In 1862, he was appointed to the U.S. diplomatic service as secretary of legation at St. Petersburg,[10] and acting minister to Russia for a time during 1862-3 after the resignation of Ambassador Simon Cameron.[11]
Cedarcroft, Taylor's home.
He published his first novel Hannah Thurston in 1863. The newspaper The New York Times first praised him for "break[ing] new ground with such assured success".[12] A second much longer appreciation in the same newspaper was thoroughly negative, describing "one pointless, aimless situation leading to another of the same stamp, and so on in maddening succession". It concluded: "The platitudes and puerilities which might otherwise only raise a smile, when confronted with such pompous pretensions, excite the contempt of every man who has in him the feeblest instincts of common honesty in literature."[13] It proved successful enough for his publisher to announce another novel from him the next year.[14]
In 1864 Taylor and his wife Maria returned to the U.S. In 1866, Taylor traveled to Colorado and made a large loop through the northern mountains on horseback with a group that included William Byers, editor of the newspaper Rocky Mountain News. His letters describing this adventure were later compiled and published as Colorado: A Summer Trip.
His late novel, Joseph and His Friend: A Story of Pennsylvania (1870), first serialized in the magazine The Atlantic, was described as a story of young man in rural Pennsylvania and "the troubles which arise from the want of a broader education and higher culture".[15] It is believed to be based on the poets Fitz-Greene Halleck and Joseph Rodman Drake, and since the late 20th-century has been called America's first gay novel.[16] Taylor spoke at the dedication of a monument to Halleck in his native town, Guilford, Connecticut. He said that in establishing this monument to an American poet "we symbolize the intellectual growth of the American people.... The life of the poet who sleeps here represents the long period of transition between the appearance of American poetry and the creation of an appreciative and sympathetic audience for it."[17][18]
Taylor imitated and parodied the writings of various poets in Diversions of the Echo Club (London, 1873; Boston, 1876).[19] In 1874 Taylor traveled to Iceland to report for the Tribune on the one thousandth anniversary of the first European settlement there.
During March 1878, the U.S. Senate confirmed his appointment as United States Minister to Prussia. Mark Twain, who traveled to Europe on the same ship, was envious of Taylor's command of German.[20]
Taylor's travel writings were widely quoted by congressmen seeking to defend racial discrimination. For example, Richard Townshend (D-IL) quoted passages from Taylor such as "the Chinese are morally, the most debased people on the face of the earth," and "A Chinese city is the greatest of all abominations."[21]
A few months after arriving in Berlin, Taylor died there on December 19, 1878. His body was returned to the U.S. and buried in Kennett Square, Pennsylvania.[22] The New York Times published his obituary on its front page, referring to him as "a great traveler, both on land and paper".[23] Shortly after his death, Henry Wadsworth Longfellow wrote a memorial poem in Taylor's memory, at the urging of Oliver Wendell Holmes, Sr.
Cedarcroft, Taylor's home from 1859 to 1874, which he built near Kennett Square, is preserved as a National Historic Landmark.
The Bayard Taylor School was added to the National Register of Historic Places in 1988.[24]
The Bayard Taylor Memorial Library is in Kennett Square.
Grave of Bayard Taylor in Kennett Square, Pennsylvania
Though he wanted to be known most as a poet, Taylor was mostly recognized as a travel writer during his lifetime. Modern critics have generally accepted him as technically skilled in verse, but lacking imagination and, ultimately, consider his work as a conventional example of 19th-century sentimentalism.[25]
His translation of Faust, however, was recognized for its scholarly skill and remained in print through 1969.[25] According to the 1920 edition of Encyclopedia Americana:
It is by his translation of Faust, one of the finest attempts of the kind in any literature, that Taylor is generally known; yet as an original poet he stands well up in the second rank of Americans. His Poems of the Orient and his Pennsylvania ballads comprise his best work. His verse is finished and sonorous, but at times over-rhetorical.
According to the 1911 edition of Encyclopædia Britannica:
Taylor's most ambitious productions in poetry—- his Masque of the Gods (Boston, 1872), Prince Deukalion; a lyrical drama (Boston, 1878), The Picture of St John (Boston, 1866), Lars; a Pastoral of Norway (Boston, 1873), and The Prophet; a tragedy (Boston, 1874)—- are marred by a ceaseless effort to overstrain his power. But he will be remembered by his poetic and excellent translation of Goethe's Faust (2 vols, Boston, 1870-71) in the original metres.
Taylor felt, in all truth, the torment and the ecstasy of verse; but, as a critical friend has written of him, his nature was so ardent, so full-blooded, that slight and common sensations intoxicated him, and he estimated their effect, and his power to transmit it to others, beyond the true value. He had, from the earliest period at which he began to compose, a distinct lyrical faculty: so keen indeed was his ear that he became too insistently haunted by the music of others, pre-eminently of Tennyson. But he had often a true and fine note of his own. His best short poems are The Metempsychosis of the Pine and the well-known Bedouin love-song.
In his critical essays Bayard Taylor had himself in no inconsiderable degree what he wrote of as that pure poetic insight which is the vital spirit of criticism. The most valuable of these prose dissertations are the Studies in German Literature (New York, 1879).
In Appletons' Cyclopædia of American Biography of 1889, Edmund Clarence Stedman gives the following critique:
His poetry is striking for qualities that appeal to the ear and eye, finished, sonorous in diction and rhythm, at times too rhetorical, but rich in sound, color, and metrical effects. His early models were Byron and Shelley, and his more ambitious lyrics and dramas exhibit the latter's peculiar, often vague, spirituality. Lars, somewhat after the manner of Tennyson, is his longest and most attractive narrative poem. Prince Deukalion was designed for a masterpiece; its blank verse and choric interludes are noble in spirit and mould. Some of Taylor's songs, oriental idyls, and the true and tender Pennsylvanian ballads, have passed into lasting favor, and show the native quality of his poetic gift. His fame rests securely upon his unequalled rendering of Faust in the original metres, of which the first and second parts appeared in 1870 and 1871. His commentary upon Part II for the first time interpreted the motive and allegory of that unique structure.
Ximena, or the Battle of the Sierra Morena, and other Poems (1844)
Views Afoot, or Europe seen with Knapsack and Staff (1846)
Rhymes of Travel: Ballads and Poems (1849)
El Dorado; or, Adventures in the Path of Empire (1850)
Romances, Lyrics, and Songs (1852)
Journey to Central Africa; or, Life and Landscapes from Egypt to the Negro Kingdoms of the White Nile, A (1854)
Lands of the Saracen; or, Pictures of Palestine, Asia Minor, Sicily and Spain, The (1854)
A visit to India, China, and Japan in the year 1853 (1855)
Poems of the Orient (Boston: Ticknor and Fields, 1855)
Poems of Home and Travel (1856)
Cyclopedia of Modern Travel (1856)
Northern Travel: Summer and Winter Pictures (1857)
View A-Foot, or Europe Seen with Knapsack and Staff (1859)
Life, Travels And Books Of Alexander Von Humboldt, The (1859)
At Home and Abroad, First Series: A Sketch-book of Life, Scenery, and Men (1859)
Cyclopaedia of Modern Travel Vol I (1861)
Prose Writings: India, China, and Japan (1862)
Travels in Greece and Russia, with an Excursion to Crete (1859)
Poet's Journal (1863)
Hanna Thurston (1863)
John Godfrey's Fortunes Related by Himself: A story of American Life (1864)
"Cruise On Lake Ladoga, A" (1864)
"The Poems of Bayard Taylor" (1865)
John Godrey's Fortunes Related By Himself - A story of American Life (1865)
The Story of Kennett (1866)
Visit To The Balearic Islands, Complete in Two Parts, A (1867)
Picture of St. John, The (1867)
Colorado: A Summer Trip (1867)
"Little Land Of Appenzell, The" (1867)
"Island of Maddalena with a Distant View of Caprera, The" (1868)
"Land Of Paoli, The" (1868)
"Catalonian Bridle-Roads" (1868)
"Kyffhauser And Its Legend, The" (1868)
By-Ways Of Europe (1869)
Joseph and His Friend: A Story of Pennsylvania (1870)
Ballad of Abraham Lincoln, The (1870)
"Sights In And Around Yedo" (1871)
Northern Travel (1871)
Japan in Our Day (1872)
Masque of the Gods, The (1872)
"Heart Of Arabia, The" (1872)
Travels in South Africa (1872)
At Home and Abroad: A Sketch-Book of Life, Scenery and Men (1872)
Diversions of the Echo Club (1873)
Lars: A Pastoral of Norway (1873)
Wonders of the Yellowstone - The Illustrated Library of Travel, Exploration and Adventure (with James Richardson) (1873)
Northern Travel: Summer and Winter Pictures - Sweden, Denmark and Lapland (1873)
Lake Regions of Central Africa (1873)
Prophet: A Tragedy, The. (1874)
Home Pastorals Ballads & Lyrics (1875)
Egypt And Iceland In The Year 1874 (1875)
Boys of Other Countries: Stories for American Boys (1876)
Echo Club and Other Literary Diversions (1876)
Picturesque Europe Part Thirty-Six (1877)
National Ode: The Memorial Freedom Poem, The (1877)
Bismarck: His Authentic Biography (1877)
"Assyrian Night-Song" (August 1877)
Prince Deukalion (1878)
Picturesque Europe (1878)
Studies in German Literature (1879)
Faust: A Tragedy translated in the Original Metres (1890)[26]
Travels in Arabia (1892)
A school history of Germany (1882)
Collected editions of his Poetical Works and his Dramatic Works were published at Boston in 1888; his Life and Letters (Boston, 2 vols., 1884) were edited by his wife and Horace Scudder.
Marie Hansen Taylor translated into German Bayard's Greece (Leipzig, 1858), Hannah Thurston (Hamburg, 1863), Story of Kennett (Gotha, 1868), Tales of Home (Berlin, 1879), Studies in German Literature (Leipzig, 1880), and notes to Faust, both parts (Leipzig, 1881). After her husband's death, she edited, with notes, his Dramatic Works (1880), and in the same year his Poems in a "Household Edition", and brought together his Critical Essays and Literary Notes. In 1885 she prepared a school edition of Lars, with notes and a sketch of its author's life.
^ Joseph A. Lordi. Kennett Square. Charleston, S.C.: Arcadia Publishing, 2006, p. 104.
^ Nelson, Randy F. The Almanac of American Letters. Los Altos, California: William Kaufmann, Inc., 1981: 38. ISBN 0-86576-008-X
^ Wermuth, Paul Charles. Bayard Taylor. Twayne Publishers, 1973: 13. ISBN 0-8057-0718-2
^ a b c d e f g One or more of the preceding sentences incorporates text from a publication now in the public domain: Chisholm, Hugh, ed. (1911). "Taylor, Bayard". Encyclopædia Britannica. 26 (11th ed.). Cambridge University Press. p. 467. This cites Smyth (1896) and Howells (1901).
^ Bayless, Joy. Rufus Wilmot Griswold: Poe's Literary Executor. Nashville: Vanderbilt University Press, 1943. p. 128
^ Oberholtzer, Ellis Paxson. The Literary History of Philadelphia. Philadelphia: George W. Jacobs & Co., 1906: 273. ISBN 1-932109-45-5.
^ "Cedarcroft: Bayard Taylor House", Living Places Website, with excerpt from 1971 nomination to National Register of Historic Places, accessed May 30, 2011
^ "The Vault at Pfaff's - Biographies - Individuals," A site dedicated to denizens of a popular 19th century watering hole, frequented by such characters as Walt Whitman, accessed April 19, 2015
^ Helmut de Terra, Alexander von Humboldt. New York: Alfred A. Knopf 1955, pp.363-65.
^ "News from Washington". The New York Times. March 29, 1862. Retrieved May 9, 2015.
^ "Important from Washington". The New York Times. February 14, 1863. Retrieved May 9, 2015.
^ "Hannah Thurston. A Story of American Life". The New York Times. November 26, 1863. Retrieved May 9, 2015.
^ "Hannah Thurston. A Story of American Life". The New York Times. December 27, 1863. Retrieved May 9, 2015.
^ "Literary Gossip". The New York Times. September 10, 1864. Retrieved May 9, 2015.
^ "New Publications" (PDF). The New York Times. December 8, 1970. Retrieved May 9, 2015.
^ Austen, Roger (1977). Playing the Game: The Homosexual Novel in America. Indianapolis: Bobbs-Merrill. pp. 9–10.
^ "The Halleck Monument" (PDF). The New York Times. July 9, 1869. Retrieved May 9, 2015.
^ Hallock, John W. M. The American Byron: Homosexuality and the Fall of Fitz-Greene Halleck. University of Wisconsin Press, 2000: 151. ISBN 0-299-16804-2
^ Haskell, Juliana (1908). Bayard Taylor's translation of Goethe's Faust. Columbia University Press. p. 13.
^ Fisher, Henry W. (1922). Abroad with Mark Twain and Eugene Field: Tales They Told to a Fellow Correspondent. New York. p. 139.
^ 13 Cong. Rec. 2214
^ Ehrlich, Eugene and Gorton Carruth. The Oxford Illustrated Literary Guide to the United States. New York: Oxford University Press, 1982: 200. ISBN 0-19-503186-5
^ Melton, Jeffrey Alan. Mark Twain, Travel Books, and Tourism: The Tide of a Great Popular Movement. Tuscaloosa: The University of Alabama Press, 2002: 81. ISBN 0-8173-1160-2
^ National Park Service (July 9, 2010). "National Register Information System". National Register of Historic Places. National Park Service.
^ a b Rennick, Andrew. "Bayard Taylor" in Writers of the American Renaissance: An A to Z Guide. Denise D. Knight, editor. Westport, CT: Greenwood Press, 2003: 354. ISBN 0-313-32140-X
^ "The Project Gutenberg eBook of Faust, by AUTHOR". www.gutenberg.org.
Cary, Richard (1952). The Genteel Circle: Bayard Taylor and his New York Friends. Ithaca, NY: Cornell University Press.
Howells, William Dean (1901). Literary Friends and Acquaintance : A Personal Retrospect of American Authorship. New York: Harper & Brothers.
Smyth, Albert (1896). Bayard Taylor (American men of Letters series). Boston, MA: Houghton Mifflin.
Taylor, Bayard (1997). Selected Letters of Bayard Taylor. Bucknell University Press. ISBN 978-0-8387-5363-7.
Wermuth, Paul (1973). Bayard Taylor (Twayne's United States authors series). New York: Twayne Publishers. ISBN 978-0-8057-0718-2.
Stedman, Edmund Clarence (1889). "Taylor, Bayard" . In Wilson, J. G.; Fiske, J. (eds.). Appletons' Cyclopædia of American Biography. New York: D. Appleton.
This article incorporates text from a publication now in the public domain: Rines, George Edwin, ed. (1920). "Taylor, (James) Bayard" . Encyclopedia Americana.
Bayard Taylorat Wikipedia's sister projects
Media from Wikimedia Commons
Texts from Wikisource
Data from Wikidata
Bayard Taylor Library Biography
Works by Bayard Taylor at Project Gutenberg
Works by or about Bayard Taylor at Internet Archive
Works by Bayard Taylor at LibriVox (public domain audiobooks)
Online Books by Bayard Taylor from The Online Books Page
Works with text by Bayard Taylor
Diplomatic posts
Bancroft Davis United States Envoy to Prussia
May 7, 1878 – December 19, 1878 Succeeded by
Andrew D. White
United States Ambassadors to Germany
Minister Plenipotentiary
Envoy Extraordinary
and Minister Plenipotentiary
Donelson
Hannegan
Kasson
Ambassador Extraordinary
and Plenipotentiary
Leishman
Dresel
Schurman
Sackett
Conant
McGhee
Hillenbrand
Stoessel
Kimmitt
Holbrooke
Bindenagel
Kornblum
Logsdon
Grenell
DSI: 11275
MusicBrainz: 92c32124-238e-45e1-8f84-8c07fa52c184
SNAC: w6t72j1h


text:
Q:  vs
A: <link> is used for specifying the CSS location if you are doing CSS externally (eg. 'index.css'). <style></style> is used for internal CSS (for when you have the CSS with the HTML in the same file).
Here is an example of a link being used to define external CSS: <link href="index.css" rel="stylesheet" type="text/css" />
P.S link is used for other things besides defining a location to external CSS.

redpajama_set_name: RedPajamaStackExchange


There's no question that Eleven is the star of Netflix's Stranger Things, but Dustin definitely holds his own as one of the coolest characters. Recently, Gaten Matarazzo, who plays Dustin on screen, opened up about something that makes him pretty badass in real life, too.
Gaten told People he has cleidocranial dysplasia, a rare disease that he described as one in a million.
According to the National Institutes of Health, cleidocranial dysplasia is a condition that affects the bones and teeth, often causing an underdeveloped or absent collarbone, unusual placement of the shoulders, decreased bone density and late development of adult teeth.
The condition can vary in how severe it is, and Gaten said he has a pretty mild case.
"There's a one in a million chance that you have of getting it — most likely you get it from a parent, but it just happened for me," Gaten told People. "I have a very mild case so it doesn't affect me as much, but it can be a very difficult condition to have."
Gaten has had a few surgeries because of the condition, but Refinery 29 says the condition can often cause people to undergo tons of surgery, particularly to the mouth.
Given that Gaten was on one of the summer's biggest shows, he's been able to reach other people with the condition even though it's so rare. He said others have reached out to him, thanking him for giving a public face to the condition.
"The feedback has been great," he said. "A lot of people were messaging me saying, 'You made me feel better about myself, that you can show that you have this condition on TV and embrace it.' I feel like I'm raising awareness for it. It makes me feel good."
And, if Gaten and his character Dustin weren't cool enough for you, the condition allows him to do some pretty wild tricks — that's the upside of his diagnosis, he said.
"People are like, 'Well, you can do these cool things with your shoulders,'" he said. "That part's cool about it."


text:
John W. Tillotson
Science Teaching
jwtillot@syr.edu
112 Heroy Geology Laboratory
Research and Teaching Interests
John W. Tillotson is an associate professor of STEM Education and chair of the Department of Science Teaching in the College of Arts & Sciences. He serves as the director of the graduate program in College Science Teaching. His current research focuses on broadening the participation of low-income, first-generation, and underrepresented minority students in undergraduate STEM degree programs and career pathways. He also investigates changes in undergraduate STEM content faculty member's pedagogical beliefs and instructional practices resulting from professional development experiences that promote evidence-based, active learning strategies. Dr. Tillotson has served as the principal investigator on federal and state grant projects totaling more than $5 million in external funding from the National Science Foundation and New York State Education Department. He has held several national STEM education leadership positions having served as the Executive Director of the National Association for Research in Science Teaching (NARST) from 2001-2007, President of the Association for Science Teacher Education (ASTE) from 2011-2014, and Research Division Director for the National Science Teachers Association (NSTA) from 2014-2017. In 2006, he was named the Outstanding Science Teacher Educator of the Year by ASTE, and received the Excellence in Graduate Education Faculty Recognition Award from Syracuse University in 2005. John is married and has four children. In his spare time, he is an active volunteer firefighter/EMT in Marathon, NY, and is the owner of Right Angle Creek Farm raising Angus beef cattle.
Teaching College Science (SCI 544)
Science: Questions and Quests- Physical Phenomena II (SCI 105)
First Year Forum (CAS 101)
Independent Study (SCI 690)
Ph.D. Science Education University of Iowa, 1996
M.S. Chemistry University of Iowa, 1995
B.S. Secondary Chemistry Education 7-12 SUNY Cortland, 1991
Tillotson, J.W., & Diana, T.J. (in press). A cycle of professional development in science teacher education. In J. Penick & R. Harris (Eds.) Teaching with Purpose. Arlington, VA: NSTA Press.
Tillotson, J.W., Ochanji, M.K., & Diana, T. (2004). Reflecting on the game: Action research in science education. In J. Weld (Ed.) The Game of Science Education. Boston, MA: Allyn & Bacon.
Tillotson, J.W., & Kluth, P. (2003). Auto mechanics in the physics lab: Science education for all. In P. Kluth, D. Straut, & D. Biklen (Eds.). Access to Academics. New Jersey: Lawrence Earlbaum.


Lecithin Granules are of the highest quality, containing no additives. They are guaranteed to be produced from non-GM soya beans grown from certified IP (Identity Preserved) seeds, and are tested for absence of genetically modified DNA.
The product can be used in cooking as a thickening agent to help bind mixtures and create smooth blends, for example in soups, sauces and dressings. They are also ideal to be taken by those following calorie controlled, low fat, low cholesterol diet.


In lectures to industry on the problem, I have found that the audiences are usually anxious for quick and practical answers, so I will begin with a straightforward, practical formula for moving people.
What is the simplest, surest, and most direct way of getting someone to do something? Ask? But if the person responds that he or she does not want to do it, then that calls for psychological consultation to determine the reason for such obstinacy. Tell the person? The response shows that he or she does not understand you, and now an expert in communication methods has to be brought in to show you how to get through. Give the person a monetary incentive? I do not need to remind the reader of the complexity and difficulty involved in setting up and administering an incentive system. Show the person? This means a costly training program. We need a simple way.
Every audience contains the "direct action" manager who shouts, "Kick the person!" And this type of manager is right. The surest and least circumlocuted way of getting someone to do something is to administer a kick in the pants—to give what might be called the KITA.
This is a literal application of the term and was frequently used in the past. It has, however, three major drawbacks: 1) It is inelegant; 2) it contradicts the precious image of benevolence that most organizations cherish; and 3) since it is a physical attack, it directly stimulates the autonomic nervous system, and this often results in negative feedback—the employee may just kick you in return. These factors give rise to certain taboos against negative physical KITA.
This has several advantages over negative physical KITA. First, the cruelty is not visible; the bleeding is internal and comes much later. Second, since it affects the higher cortical centers of the brain with its inhibitory powers, it reduces the possibility of physical backlash. Third, since the number of psychological pains that a person can feel is almost infinite, the direction and site possibilities of the KITA are increased many times. Fourth, the person administering the kick can manage to be above it all and let the system accomplish the dirty work. Fifth, those who practice it receive some ego satisfaction (one-upmanship), whereas they would find drawing blood abhorrent. Finally, if the employee does complain, he or she can always be accused of being paranoid; there is no tangible evidence of an actual attack.
I have a year-old schnauzer. When it was a small puppy and I wanted it to move, I kicked it in the rear and it moved. Now that I have finished its obedience training, I hold up a dog biscuit when I want the schnauzer to move. In this instance, who is motivated—I or the dog? The dog wants the biscuit, but it is I who want it to move. Again, I am the one who is motivated, and the dog is the one who moves. In this instance all I did was apply KITA frontally; I exerted a pull instead of a push. When industry wishes to use such positive KITAs, it has available an incredible number and variety of dog biscuits (jelly beans for humans) to wave in front of employees to get them to jump.
Why is KITA not motivation? If I kick my dog (from the front or the back), he will move. And when I want him to move again, what must I do? I must kick him again. Similarly, I can charge a person's battery, and then recharge it, and recharge it again. But it is only when one has a generator of one's own that we can talk about motivation. One then needs no outside stimulation. One wants to do it.
1. Reducing Time Spent at Work.
This represents a marvelous way of motivating people to work—getting them off the job! We have reduced (formally and informally) the time spent on the job over the last 50 or 60 years until we are finally on the way to the "6½-day weekend." An interesting variant of this approach is the development of off-hour recreation programs. The philosophy here seems to be that those who play together, work together. The fact is that motivated people seek more hours of work, not fewer.
Have these motivated people? Yes, to seek the next wage increase. Some medievalists still can be heard to say that a good depression will get employees moving. They feel that if rising wages don't or won't do the job, reducing them will.
Industry has outdone the most welfare-minded of welfare states in dispensing cradle-to-the-grave succor. One company I know of had an informal "fringe benefit of the month club" going for a while. The cost of fringe benefits in this country has reached approximately 25% of the wage dollar, and we still cry for motivation.
People spend less time working for more money and more security than ever before, and the trend cannot be reversed. These benefits are no longer rewards; they are rights. A 6-day week is inhuman, a 10-hour day is exploitation, extended medical coverage is a basic decency, and stock options are the salvation of American initiative. Unless the ante is continuously raised, the psychological reaction of employees is that the company is turning back the clock.
When industry began to realize that both the economic nerve and the lazy nerve of their employees had insatiable appetites, it started to listen to the behavioral scientists who, more out of a humanist tradition than from scientific study, criticized management for not knowing how to deal with people. The next KITA easily followed.
More than 30 years of teaching and, in many instances, of practicing psychological approaches to handling people have resulted in costly human relations programs and, in the end, the same question: How do you motivate workers? Here, too, escalations have taken place. Thirty years ago it was necessary to request, "Please don't spit on the floor." Today the same admonition requires three "pleases" before the employee feels that a superior has demonstrated the psychologically proper attitude.
The failure of human relations training to produce motivation led to the conclusion that supervisors or managers themselves were not psychologically true to themselves in their practice of interpersonal decency. So an advanced form of human relations KITA, sensitivity training, was unfolded.
Do you really, really understand yourself? Do you really, really, really trust other people? Do you really, really, really, really cooperate? The failure of sensitivity training is now being explained, by those who have become opportunistic exploiters of the technique, as a failure to really (five times) conduct proper sensitivity training courses.
With the realization that there are only temporary gains from comfort and economic and interpersonal KITA, personnel managers concluded that the fault lay not in what they were doing, but in the employee's failure to appreciate what they were doing. This opened up the field of communications, a new area of "scientifically" sanctioned KITA.
The professor of communications was invited to join the faculty of management training programs and help in making employees understand what management was doing for them. House organs, briefing sessions, supervisory instruction on the importance of communication, and all sorts of propaganda have proliferated until today there is even an International Council of Industrial Editors. But no motivation resulted, and the obvious thought occurred that perhaps management was not hearing what the employees were saying. That led to the next KITA.
Management ordered morale surveys, suggestion plans, and group participation programs. Then both management and employees were communicating and listening to each other more than ever, but without much improvement in motivation.
The behavioral scientists began to take another look at their conceptions and their data, and they took human relations one step further. A glimmer of truth was beginning to show through in the writings of the so-called higher-order-need psychologists. People, so they said, want to actualize themselves. Unfortunately, the "actualizing" psychologists got mixed up with the human relations psychologists, and a new KITA emerged.
Though it may not have been the theoretical intention, job participation often became a "give them the big picture" approach. For example, if a man is tightening 10,000 nuts a day on an assembly line with a torque wrench, tell him he is building a Chevrolet. Another approach had the goal of giving employees a "feeling" that they are determining, in some measure, what they do on the job. The goal was to provide a sense of achievement rather than a substantive achievement in the task. Real achievement, of course, requires a task that makes it possible.
But still there was no motivation. This led to the inevitable conclusion that the employees must be sick, and therefore to the next KITA.
The initial use of this form of KITA in a systematic fashion can be credited to the Hawthorne experiment of the Western Electric Company during the early 1930s. At that time, it was found that the employees harbored irrational feelings that were interfering with the rational operation of the factory. Counseling in this instance was a means of letting the employees unburden themselves by talking to someone about their problems. Although the counseling techniques were primitive, the program was large indeed.
The counseling approach suffered as a result of experiences during World War II, when the programs themselves were found to be interfering with the operation of the organizations; the counselors had forgotten their role of benevolent listeners and were attempting to do something about the problems that they heard about. Psychological counseling, however, has managed to survive the negative impact of World War II experiences and today is beginning to flourish with renewed sophistication. But, alas, many of these programs, like all the others, do not seem to have lessened the pressure of demands to find out how to motivate workers.
Since KITA results only in short-term movement, it is safe to predict that the cost of these programs will increase steadily and new varieties will be developed as old positive KITAs reach their satiation points.
Let me rephrase the perennial question this way: How do you install a generator in an employee? A brief review of my motivation-hygiene theory of job attitudes is required before theoretical and practical suggestions can be offered. The theory was first drawn from an examination of events in the lives of engineers and accountants. At least 16 other investigations, using a wide variety of populations (including some in the Communist countries), have since been completed, making the original research one of the most replicated studies in the field of job attitudes.
The findings of these studies, along with corroboration from many other investigations using different procedures, suggest that the factors involved in producing job satisfaction (and motivation) are separate and distinct from the factors that lead to job dissatisfaction. (See Exhibit 1, which is further explained below.) Since separate factors need to be considered, depending on whether job satisfaction or job dissatisfaction is being examined, it follows that these two feelings are not opposites of each other. The opposite of job satisfaction is not job dissatisfaction but, rather, no job satisfaction; and similarly, the opposite of job dissatisfaction is not job satisfaction, but no job dissatisfaction.
Stating the concept presents a problem in semantics, for we normally think of satisfaction and dissatisfaction as opposites; i.e., what is not satisfying must be dissatisfying, and vice versa. But when it comes to understanding the behavior of people in their jobs, more than a play on words is involved.
Two different needs of human beings are involved here. One set of needs can be thought of as stemming from humankind's animal nature—the built-in drive to avoid pain from the environment, plus all the learned drives that become conditioned to the basic biological needs. For example, hunger, a basic biological drive, makes it necessary to earn money, and then money becomes a specific drive. The other set of needs relates to that unique human characteristic, the ability to achieve and, through achievement, to experience psychological growth. The stimuli for the growth needs are tasks that induce growth; in the industrial setting, they are the job content. Contrariwise, the stimuli inducing pain-avoidance behavior are found in the job environment.
The growth or motivator factors that are intrinsic to the job are: achievement, recognition for achievement, the work itself, responsibility, and growth or advancement. The dissatisfaction-avoidance or hygiene (KITA) factors that are extrinsic to the job include: company policy and administration, supervision, interpersonal relationships, working conditions, salary, status, and security.
A composite of the factors that are involved in causing job satisfaction and job dissatisfaction, drawn from samples of 1,685 employees, is shown in Exhibit 1. The results indicate that motivators were the primary cause of satisfaction, and hygiene factors the primary cause of unhappiness on the job. The employees, studied in 12 different investigations, included lower level supervisors, professional women, agricultural administrators, men about to retire from management positions, hospital maintenance personnel, manufacturing supervisors, nurses, food handlers, military officers, engineers, scientists, housekeepers, teachers, technicians, female assemblers, accountants, Finnish foremen, and Hungarian engineers.
As the lower right-hand part of the exhibit shows, of all the factors contributing to job satisfaction, 81% were motivators. And of all the factors contributing to the employees' dissatisfaction over their work, 69% involved hygiene elements.
There are three general philosophies of personnel management. The first is based on organizational theory, the second on industrial engineering, and the third on behavioral science.
Organizational theorists believe that human needs are either so irrational or so varied and adjustable to specific situations that the major function of personnel management is to be as pragmatic as the occasion demands. If jobs are organized in a proper manner, they reason, the result will be the most efficient job structure, and the most favorable job attitudes will follow as a matter of course.
Industrial engineers hold that humankind is mechanistically oriented and economically motivated and that human needs are best met by attuning the individual to the most efficient work process. The goal of personnel management therefore should be to concoct the most appropriate incentive system and to design the specific working conditions in a way that facilitates the most efficient use of the human machine. By structuring jobs in a manner that leads to the most efficient operation, engineers believe that they can obtain the optimal organization of work and the proper work attitudes.
Behavioral scientists focus on group sentiments, attitudes of individual employees, and the organization's social and psychological climate. This persuasion emphasizes one or more of the various hygiene and motivator needs. Its approach to personnel management is generally to emphasize some form of human relations education, in the hope of instilling healthy employee attitudes and an organizational climate that is considered to be felicitous to human values. The belief is that proper attitudes will lead to efficient job and organizational structure.
There is always a lively debate concerning the overall effectiveness of the approaches of organizational theorists and industrial engineers. Manifestly, both have achieved much. But the nagging question for behavioral scientists has been: What is the cost in human problems that eventually cause more expense to the organization—for instance, turnover, absenteeism, errors, violation of safety rules, strikes, restriction of output, higher wages, and greater fringe benefits? On the other hand, behavioral scientists are hard put to document much manifest improvement in personnel management, using their approach.
The motivation-hygiene theory suggests that work be enriched to bring about effective utilization of personnel. Such a systematic attempt to motivate employees by manipulating the motivator factors is just beginning. The term job enrichment describes this embryonic movement. An older term, job enlargement, should be avoided because it is associated with past failures stemming from a misunderstanding of the problem. Job enrichment provides the opportunity for the employee's psychological growth, while job enlargement merely makes a job structurally bigger. Since scientific job enrichment is very new, this article only suggests the principles and practical steps that have recently emerged from several successful experiments in industry.
Challenging the employee by increasing the amount of production expected. If each tightens 10,000 bolts a day, see if each can tighten 20,000 bolts a day. The arithmetic involved shows that multiplying zero by zero still equals zero.
Adding another meaningless task to the existing one, usually some routine clerical activity. The arithmetic here is adding zero to zero.
Rotating the assignments of a number of jobs that need to be enriched. This means washing dishes for a while, then washing silverware. The arithmetic is substituting one zero for another zero.
Removing the most difficult parts of the assignment in order to free the worker to accomplish more of the less challenging assignments. This traditional industrial engineering approach amounts to subtraction in the hope of accomplishing addition.
These are common forms of horizontal loading that frequently come up in preliminary brainstorming sessions of job enrichment. The principles of vertical loading have not all been worked out as yet, and they remain rather general, but I have furnished seven useful starting points for consideration in Exhibit 2.
An example from a highly successful job enrichment experiment can illustrate the distinction between horizontal and vertical loading of a job. The subjects of this study were the stockholder correspondents employed by a very large corporation. Seemingly, the task required of these carefully selected and highly trained correspondents was quite complex and challenging. But almost all indexes of performance and job attitudes were low, and exit interviewing confirmed that the challenge of the job existed merely as words.
A job enrichment project was initiated in the form of an experiment with one group, designated as an achieving unit, having its job enriched by the principles described in Exhibit 2. A control group continued to do its job in the traditional way. (There were also two "uncommitted" groups of correspondents formed to measure the so-called Hawthorne effect—that is, to gauge whether productivity and attitudes toward the job changed artificially merely because employees sensed that the company was paying more attention to them in doing something different or novel. The results for these groups were substantially the same as for the control group, and for the sake of simplicity I do not deal with them in this summary.) No changes in hygiene were introduced for either group other than those that would have been made anyway, such as normal pay increases.
The changes for the achieving unit were introduced in the first two months, averaging one per week of the seven motivators listed in Exhibit 2. At the end of six months the members of the achieving unit were found to be outperforming their counterparts in the control group and, in addition, indicated a marked increase in their liking for their jobs. Other results showed that the achieving group had lower absenteeism and, subsequently, a much higher rate of promotion.
Exhibit 3 illustrates the changes in performance, measured in February and March, before the study period began, and at the end of each month of the study period. The shareholder service index represents quality of letters, including accuracy of information, and speed of response to stockholders' letters of inquiry. The index of a current month was averaged into the average of the two prior months, which means that improvement was harder to obtain if the indexes of the previous months were low. The "achievers" were performing less well before the six-month period started, and their performance service index continued to decline after the introduction of the motivators, evidently because of uncertainty after their newly granted responsibilities. In the third month, however, performance improved, and soon the members of this group had reached a high level of accomplishment.
Exhibit 4 shows the two groups' attitudes toward their job, measured at the end of March, just before the first motivator was introduced, and again at the end of September. The correspondents were asked 16 questions, all involving motivation. A typical one was, "As you see it, how many opportunities do you feel that you have in your job for making worthwhile contributions?" The answers were scaled from 1 to 5, with 80 as the maximum possible score. The achievers became much more positive about their job, while the attitude of the control unit remained about the same (the drop is not statistically significant).
How was the job of these correspondents restructured? Exhibit 5 lists the suggestions made that were deemed to be horizontal loading, and the actual vertical loading changes that were incorporated in the job of the achieving unit. The capital letters under "Principle" after "Vertical Loading" refer to the corresponding letters in Exhibit 2. The reader will note that the rejected forms of horizontal loading correspond closely to the list of common manifestations I mentioned earlier.
1. Select those jobs in which a) the investment in industrial engineering does not make changes too costly, b) attitudes are poor, c) hygiene is becoming very costly, and d) motivation will make a difference in performance.
2. Approach these jobs with the conviction that they can be changed. Years of tradition have led managers to believe that job content is sacrosanct and the only scope of action that they have is in ways of stimulating people.
3. Brainstorm a list of changes that may enrich the jobs, without concern for their practicality.
4. Screen the list to eliminate suggestions that involve hygiene, rather than actual motivation.
5. Screen the list for generalities, such as "give them more responsibility," that are rarely followed in practice. This might seem obvious, but the motivator words have never left industry; the substance has just been rationalized and organized out. Words like "responsibility," "growth," "achievement," and "challenge," for example, have been elevated to the lyrics of the patriotic anthem for all organizations. It is the old problem typified by the pledge of allegiance to the flag being more important than contributions to the country—of following the form, rather than the substance.
6. Screen the list to eliminate any horizontal loading suggestions.
7. Avoid direct participation by the employees whose jobs are to be enriched. Ideas they have expressed previously certainly constitute a valuable source for recommended changes, but their direct involvement contaminates the process with human relations hygiene and, more specifically, gives them only a sense of making a contribution. The job is to be changed, and it is the content that will produce the motivation, not attitudes about being involved or the challenge inherent in setting up a job. That process will be over shortly, and it is what the employees will be doing from then on that will determine their motivation. A sense of participation will result only in short-term movement.
8. In the initial attempts at job enrichment, set up a controlled experiment. At least two equivalent groups should be chosen, one an experimental unit in which the motivators are systematically introduced over a period of time, and the other one a control group in which no changes are made. For both groups, hygiene should be allowed to follow its natural course for the duration of the experiment. Pre- and post-installation tests of performance and job attitudes are necessary to evaluate the effectiveness of the job enrichment program. The attitude test must be limited to motivator items in order to divorce employees' views of the jobs they are given from all the surrounding hygiene feelings that they might have.
9. Be prepared for a drop in performance in the experimental group the first few weeks. The changeover to a new job may lead to a temporary reduction in efficiency.
10. Expect your first-line supervisors to experience some anxiety and hostility over the changes you are making. The anxiety comes from their fear that the changes will result in poorer performance for their unit. Hostility will arise when the employees start assuming what the supervisors regard as their own responsibility for performance. The supervisor without checking duties to perform may then be left with little to do.
After successful experiment, however, the supervisors usually discover the supervisory and managerial functions they have neglected, or which were never theirs because all their time was given over to checking the work of their subordinates. For example, in the R&D division of one large chemical company I know of, the supervisors of the laboratory assistants were theoretically responsible for their training and evaluation. These functions, however, had come to be performed in a routine, unsubstantial fashion. After the job enrichment program, during which the supervisors were not merely passive observers of the assistants' performance, the supervisors actually were devoting their time to reviewing performance and administering thorough training.
What has been called an employee-centered style of supervision will come about not through education of supervisors, but by changing the jobs that they do.
The changes should bring the job up to the level of challenge commensurate with the skill that was hired.
Those who have still more ability eventually will be able to demonstrate it better and win promotion to higher level jobs.
The very nature of motivators, as opposed to hygiene factors, is that they have a much longer-term effect on employees' attitudes. It is possible that the job will have to be enriched again, but this will not occur as frequently as the need for hygiene.
Not all jobs can be enriched, nor do all jobs need to be enriched. If only a small percentage of the time and money that is now devoted to hygiene, however, were given to job enrichment efforts, the return in human satisfaction and economic gain would be one of the largest dividends that industry and society have ever reaped through their efforts at better personnel management.
The argument for job enrichment can be summed up quite simply: If you have employees on a job, use them. If you can't use them on the job, get rid of them, either via automation or by selecting someone with lesser ability. If you can't use them and you can't get rid of them, you will have a motivation problem.
Why can't employees speak honestly about their career goals with their managers? It's because of the reasonable belief that doing so is risky and career-limiting if the employee's aspirations do not perfectly match up with the manager's existing views and time horizons. It seems safer to wait until another job offer is in hand, so that if one's manager reacts badly to one's ideas, there's no danger of being passed over for on-going professional development, or worse, left unemployed. It's a self-fulfilling prophecy: once an employee has gone far down the road with another potential employer, it's hard for her to maintain a positive relationship with her current company.
Neither manager nor employee necessarily wants the current employment relationship to end, but because of the lack of trust and honesty, that's precisely what becomes likely to happen with talented employees.
As with other aspects of the employer-employee alliance, the ROFC isn't a binding legal contract. It's an understanding between manager and employee that carries moral weight if violated.
Because the employer typically holds the power in the relationship, it's up to the company to take the first step towards building the necessary trust. Managers need to say, "We don't fire people for talking honestly about their career goals," and truly mean it. Once employees believe that the company will live up to those words, managers can point out the benefits to the employee of granting them the Right of First Conversation.
First, an employee can benefit from frank career advice from a manager on specific industry opportunities. In a high trust relationship, a manager will not reactively denigrate competitors or "say anything" to keep an employee.
Second, perhaps the current company can upgrade the quality of the employee's existing tour of duty. An employee who provides advance notice allows the company the time necessary to explore and develop more possible options and offers. If the company has weeks to match or exceed an offer from a rival, it has a much better chance of pulling together a counter than if it only had twenty-four hours to respond.
Finally, even if the company can't present a compelling counter or the employee chooses to switch firms, the ROFC helps preserve the long-term relationship. The split can be made amicably, and on a timetable that works for both parties, honoring the mutual obligations and investment they have made in each other.
As a manager, would you rather manage a planned separation from an employee who has completed her final tour of duty? Or would you rather scramble to perform damage control on a sudden departure?
As an employee, would you rather depart amicably and become a valued member of the company's alumni network? Or would you prefer to depart under a cloud of acrimony?
The Right of First Conversation represents a major departure from business as usual, but that's precisely the point. The lack of trust between employer and employee is costing both parties. Adopting the ROFC helps both parties build trust and a longer, more fruitful relationship.
Reid Hoffman is cofounder and Executive Chairman of LinkedIn, the world's largest professional network, and partner at the Silicon Valley venture capital firm Greylock. He is a co-author of The Alliance: Managing Talent in the Networked Age.
Ben Casnocha is an award-winning entrepreneur and bestselling co-author, with Reid Hoffman, of The Start-up of You. He is a frequent speaker on talent management, and is a co-author of The Alliance: Managing Talent in the Networked Age.
Chris Yeh is an entrepreneur, writer, and mentor. He helps interesting people do interesting things as VP of Marketing at PBworks and general partner at Wasabi Ventures. He is a co-author of The Alliance: Managing Talent in the Networked Age.
Harvard Business School professor David Garvin interviews Google software-engineering manager Eric Clayberg, a winner of the company's Great Manager Award. They discuss how Clayberg and others at Google have benefitted from Project Oxygen, an internal research initiative that has evolved into a comprehensive management-feedback and -training program.
Measuring ResultsThe people ops team has analyzed Oxygen's impact by examining aggregate survey data and qualitative input from individuals. From 2010 through 2012, UFS and TMS median favorability scores rose from 83% to 88%. The lowest-scoring managers improved the most, particularly in the areas of coaching and career development. The improvements were consistent across functions, survey categories, management levels, spans of control, and geographic regions.
Still, Project Oxygen has accomplished what it set out to do: It not only convinced its skeptical audience of Googlers that managers mattered but also identified, described, and institutionalized their most essential behaviors. Oxygen applied the concept of data-driven continuous improvement directly—and successfully—to the soft skills of management. Widespread adoption has had a significant impact on how employees perceive life at Google—particularly on how they rate the degree of collaboration, the transparency of performance evaluations, and their groups' commitment to innovation and risk taking.
David A. Garvin is the C. Roland Christensen Professor of Business Administration at Harvard Business School. This article draws on material in the HBS case study "Google's Project Oxygen: Do Managers Matter?" (case number 9-313-110, published April 2013).


text:
Q: Transaction TimeOut EJB impact on the thread A question on EJB:
Let's say I have a session bean which has an infinite loop. It is running under a EJB transaction. Now when the transaction of the EJB  times out, will that cause the infinite loop thread to break or container will stop the thread running the infinite loop.

A:
Now when the transaction of the EJB timesout, will that cause the infinite loop thread to break or container will stop the thread running the infinte loop.

This answer is based on reverse-engineering that I performed a couple of years back on OC4J 10.3.x, WebSphere 6.x and WebLogic 10.x, and might apply to other containers in a similar manner. As far as I remember, the transaction timeout detection is implemented differently in different containers, but they all employ certain common principles stated as follows:

*

*The transaction timeout detection is usually performed in a different thread managed by the container. The pertinent thread sleeps for a specified duration (usually 1 second), then wakes up and iterates through all the transactions in progress. If any transaction has exceeded the timeout specified (usually at various levels - the JTA container, the EJB etc.), then the thread will mark the transaction for rollback. No attempt will be made to signal the thread executing the transaction about the transaction state.

*When the thread performing the transaction attempts to interact with the JTA co-ordinator or with a transactional resource (an XAResource instance) to do some work (for instance, issue a SQL query), the container would determine that the transaction has been marked for a rollback, and would throw a TransactionRolledBackException.

Based on the above, it can be inferred that the infinite loop will never be broken unless a TransactionRolledBackException is thrown. In other words, the loop will be broken only when a transactional activity is attempted within the loop; if no such activity is performed, then the loop will retain it's property to execute indefinitely.
Note that certain containers like WebLogic allow for detection of "stuck" threads. This means that such containers have the ability to detect if a thread has been executing for an extended period of time beyond a configured duration. This done not mean that the container will terminate or interrupt the thread when it detects that one is stuck.

A: No, it is not possible in general for a container to automatically detect an infinite loop.  Some application servers might detect that the transaction has timed out or that the EJB has been active for a long time.


text:
Q: TypeScript default function for higher-order function generic type I have a higher-order function which correctly infers the type of its returned function based on a generic function passed as an argument, might be easier to understand with a simple example:
function someFunction<T>(f: (s: string) => T) {
  return function(s: string): T {
    return f(s)
  }
}

So, if I pass a function that returns a string, the returned function will correctly infer the type:
const funcStr = someFunction((s: string) => s)
//    ^ const funcStr: (s: string) => string

And if I pass a function that returns a number it will return a function that in turn returns a number:
const funcNum = someFunction((s: string) => Number(s))
//    ^ const funcStr: (s: string) => number

Now I want to add a default value to the higher-order function, but haven't been able to make it work:
// Type '(s: string) => number' is not assignable to type '(s: string) => T'.
function someFunction<T>(f: (s: string) => T = (s: string) => Number(s)) {
//                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  return function(s: string): T {
    return f(s)
  }
}

How can I add a default function to the higher-order function and still make it infer the type if another function is used?
Working TS playground.

A: Technically speaking the compiler is right to complain.  You can always use a type assertion to suppress the error on the default function parameter, as well as providing a default type parameter for T so the compiler knows what to do if it can't infer T from the argument:
function someFunction<T = number>(
  f: (s: string) => T = ((s: string) => Number(s)) as any
) {
  return function (s: string): T {
    return f(s)
  }
}

And this will behave exactly as you want:
const fNum = someFunction()
console.log(fNum("3.14159").toFixed(2)); // 3.14
const fStr = someFunction((s: string) => s)

But the problem with this approach is that the type parameter T is specified by the caller of someFunction(), not by the implementation.  And so nothing will prevent a malicious and/or confused caller from doing something like this:
const fOops = someFunction<string>();

The caller has specified that T is a string, and even though T's default is number, it has been overridden by an explicit string type.   So the compiler thinks that fOops is of type (s: string) => string, but of course at runtime we know it won't be:
try {
  fOops("oopsie").toUpperCase(); // no compiler error
} catch (e) {
  console.log(e); // fOops(...).toUpperCase is not a function
}

And that's why the compiler complains; it is saying that it can't be sure that the default value of f will be of a type appropriate for the T specified by the caller.
If you don't care about this possibility, then this approach is fine and requires the minimum change to your code.

If you want to prevent the possibility of an fOops-like situation, you could change someFunction() to be an overloaded function to have two call signatures:
// call signatures
function someFunction(): (s: string) => number;
function someFunction<T>(f: (s: string) => T): (s: string) => T;

If you call someFunction() with no argument, then you are invoking the first call signature, and the return type must be (s: string) => number; there's no generic type parameter on this call signature at all.
Otherwise, if you call it with a callback argument, then you are invoking the second call signature; there's a type parameter T corresponding to the return type of that callback.
Then the implementation can be similar to before, but you loosen the types up to prevent a complaint (here we will just use any as the return type):
function someFunction(f: (s: string) => any = (s: string) => Number(s)) {
  return function (s: string) {
    return f(s)
  }
}

Now the calls you intend to support still work:
const fNum = someFunction()
console.log(fNum("3.14159").toFixed(2)); // 3.14

const fStr = someFunction((s: string) => s)

but it is impossible to invoke the zero-arg call signature with a type parameter, so you can't call it the wrong way anymore:
const fOops = someFunction<string>() // error!
// Expected 1 arguments, but got 0.

Playground link to code