text:
package com.flexdms.flexims.unit.jpa.eclipselink;

import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;

import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;

import mockit.MockUp;

import org.eclipse.persistence.dynamic.DynamicEntity;
import org.eclipse.persistence.internal.dynamic.DynamicEntityImpl;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.junit.runners.MethodSorters;

import com.flexdms.flexims.App;
import com.flexdms.flexims.jpa.JpaHelper;
import com.flexdms.flexims.jpa.eclipselink.DynamicMetaSource;
import com.flexdms.flexims.jpa.eclipselink.FleximsDynamicEntityImpl;
import com.flexdms.flexims.jpa.eclipselink.MetaSourceBuilder;
import com.flexdms.flexims.jpa.helper.ByteArray;
import com.flexdms.flexims.jpa.helper.NameValueList;
import com.flexdms.flexims.unit.TestEntityUtil;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestBasicCollectionMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestBasicMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestDataTypeMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestDemoRelation;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestEmbeddedCollectionMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestEmbeddedMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestEmbededXmlMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestInheritanceMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestManyManyMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestMetaSourceModEmbedded;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestMetaSourceModEntity;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestOneManyMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestOneManyUnidirectionalMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestOneOneMetaSource;
import com.flexdms.flexims.unit.jpa.eclipselink.helper.TestSpecialTypeMetaSource;

/**
 * Test various feature of Dynamic Entity to make sure it behaves as we
 * expected.
 *
 * @author jason.zhang
 *
 */
@RunWith(JUnit4.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestORMGenerator extends TestORMSetup {

	public void generateSchema(Class<?> srcCLass) throws Exception {
		String schema = App.getPersistenceUnit().getSchema();
		System.err.println("generated schema");
		System.err.println(schema);
		assertTrue(schema.toString().length() > 10);

	}

	public final static class DynamicMetaSourceMock extends MockUp<DynamicMetaSource> {

		void $clinit() {

		}
	}

	/**
	 * Whether how all basic type are persisted
	 *
	 * @throws Exception
	 */
	@Test
	public void testDataTypes() throws Exception {
		this.metaSrcClass = TestDataTypeMetaSource.class;
		this.initEmf();

		String testName = "Test";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl de = JpaHelper.createNewEntity(em, testName);

		// text
		de.set("shortstring", "this is a short string");
		de.set("mediumstring", "this is a medium string");
		de.set("longstring", "this is a long string");

		// number
		de.set("propint", 5);
		de.set("proplong", 5l);
		de.set("propfloat", 5.0f);
		de.set("propdouble", 5.9d);
		de.set("propcurrency", new BigDecimal(79.6545));

		// boolean
		de.set("propboolean", true);

		de.set("propdate", Calendar.getInstance());
		de.set("proptimestamp", Calendar.getInstance());
		de.set("proptime", Calendar.getInstance());
		em.persist(de);
		tx.commit();
		em.close();

	}

	/**
	 * Test collection can be created
	 *
	 * @throws Exception
	 */
	@Test
	public void testBasicCollection() throws Exception {

		// -create EMF
		this.metaSrcClass = TestBasicCollectionMetaSource.class;
		this.initEmf();

		String testName = "Test";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl de = JpaHelper.createNewEntity(em, testName);

		Set<String> strs = new HashSet<>();
		strs.add("jason");
		strs.add("jason1");
		de.set("propstrs", strs);

		Set<Calendar> dates = new HashSet<>();
		dates.add(Calendar.getInstance());
		dates.add(Calendar.getInstance());
		de.set("propdates", dates);

		em.persist(de);
		tx.commit();
		em.close();

	}

	/**
	 * Make sure Dynamic Entity Can be updated.
	 */
	@Test
	public void testUpdate() throws Exception {

		// -create EMF
		this.metaSrcClass = TestBasicMetaSource.class;
		this.initEmf();

		String testName = "Test";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl de = JpaHelper.createNewEntity(em, testName);

		de.set("fname", "test");
		de.set("time1", Calendar.getInstance());
		em.persist(de);
		tx.commit();

		tx = em.getTransaction();
		tx.begin();

		FleximsDynamicEntityImpl de1 = em.find(de.getClass(), de.getId());
		de1.set("fname", "test2");
		tx.commit();

		FleximsDynamicEntityImpl de2 = em.find(de.getClass(), de.getId());
		assertEquals(de2.get("fname"), "test2");

		em.close();

	}

	/**
	 * test basic functionality 1. a basic entity with string and time can be
	 * created. 2. new property can be added dynamically.
	 *
	 * @throws Exception
	 */
	@Test
	public void testBasic() throws Exception {

		// -create EMF
		this.metaSrcClass = TestBasicMetaSource.class;
		this.initEmf();

		String testName = "Test";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl de = JpaHelper.createNewEntity(em, testName);

		de.set("fname", "test");
		de.set("time1", Calendar.getInstance());
		em.persist(de);
		tx.commit();
		em.close();

		// add one more attributes
		TestBasicMetaSource.twoAttributes = true;
		this.refreshEmf();
		// refresh
		// refreshEmf();
		//

		// make sure second attributes are added and table column are created
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		de = JpaHelper.createNewEntity(em, testName);

		de.set("fname", "test");
		de.set("lname", "zhang");
		em.persist(de);
		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), de.getId());
		em.refresh(fresh);
		assertThat(de.get("lname"), equalTo(fresh.get("lname")));

		// have to remove this before we could output scripts
		// //properties.remove(PersistenceUnitProperties.DDL_GENERATION);
		generateSchema(TestBasicMetaSource.class);
	}

	/**
	 * Test custom object can be saved and readed using jaxb
	 *
	 * @throws Exception
	 */
	@Test
	public void testSpecialTypeObject() throws Exception {

		// -create EMF
		this.metaSrcClass = TestSpecialTypeMetaSource.class;
		this.initEmf();

		String testName = "Mspecial";

		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();

		// object
		FleximsDynamicEntityImpl de = JpaHelper.createNewEntity(em, testName);
		TestEntityUtil.setSpecialtype(de);
		em.persist(de);

		// byte
		tx.commit();

		FleximsDynamicEntityImpl de1 = em.find(de.getClass(), de.getId());
		em.refresh(de1);
		NameValueList nv = de.get("propobject");
		NameValueList nv1 = de1.get("propobject");

		ByteArray b = de.get("propbyte");
		ByteArray b1 = de1.get("propbyte");
		assertThat(nv.toMap().get("first name"), equalTo(nv1.toMap().get("first name")));
		assertThat(b.value, equalTo(b1.value));
		System.err.println(new String(b1.value));

		em.close();

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);
		generateSchema(TestBasicMetaSource.class);
	}

	/**
	 * relation can be added at a later stage
	 *
	 * @throws Exception
	 */
	@Test
	public void testOneToManyRelation() throws Exception {

		this.metaSrcClass = TestOneManyMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		em.persist(test1);

		tx.commit();
		em.close();

		// refresh
		TestOneManyMetaSource.hasRel = true;
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		test1.set("test", test);
		em.persist(test1);

		FleximsDynamicEntityImpl test2 = JpaHelper.createNewEntity(em, test1Name);
		test2.set("fname", "test1");
		test2.set("test", test);
		em.persist(test2);
		tx.commit();

		tx.begin();
		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test.getId());
		em.refresh(fresh);
		List<DynamicEntity> list = fresh.get("test1s");
		assertTrue(2 == list.size());

		assertTrue(((DynamicEntity) list.get(0)).get("test") == fresh);
		tx.commit();
		em.close();

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);
		generateSchema(TestOneManyMetaSource.class);
	}

	@Test
	public void testOneToOneRelation() throws Exception {

		this.metaSrcClass = TestOneOneMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		em.persist(test1);

		tx.commit();
		em.close();

		// refresh
		TestOneOneMetaSource.hasRel = true;
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		test1.set("test", test);
		em.persist(test1);
		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test.getId());
		em.refresh(fresh);
		FleximsDynamicEntityImpl newtest1 = fresh.get("test1");
		assertTrue(newtest1.getId() == test1.getId());
		em.close();

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestOneOneMetaSource.class);
	}

	@Test
	public void testManyManyRelation() throws Exception {

		this.metaSrcClass = TestManyManyMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		em.persist(test1);

		tx.commit();
		em.close();

		// -----------------------
		TestManyManyMetaSource.hasRel = true;
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();

		tx = em.getTransaction();
		// remove legacy data from previous test
		tx.begin();
		Connection connection = em.unwrap(Connection.class);
		connection.createStatement().execute("delete from test1_test");
		tx.commit();

		tx = em.getTransaction();
		tx.begin();

		FleximsDynamicEntityImpl xtest0 = JpaHelper.createNewEntity(em, testName);
		xtest0.set("fname", "xtest0");
		xtest0.set("lname", "zhang");
		em.persist(xtest0);

		FleximsDynamicEntityImpl xtest1 = JpaHelper.createNewEntity(em, testName);
		xtest1.set("fname", "xtest1");
		xtest1.set("lname", "zhang");
		em.persist(xtest1);

		List tests = new ArrayList<>();
		tests.add(xtest0);
		tests.add(xtest1);

		test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		// ---relationship
		test1.set("tests", tests);
		em.persist(test1);

		FleximsDynamicEntityImpl test2 = JpaHelper.createNewEntity(em, test1Name);
		test2.set("fname", "test12");
		test2.set("tests", tests);
		em.persist(test2);

		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), xtest0.getId());
		em.refresh(fresh);
		List<FleximsDynamicEntityImpl> newtests = fresh.get("test1s");
		assertTrue(newtests.size() == 2);

		fresh = em.find(JpaHelper.getEntityClass(em, testName), xtest1.getId());
		em.refresh(fresh);
		newtests = fresh.get("test1s");
		assertTrue(newtests.size() == 2);
		em.close();

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestManyManyMetaSource.class);
	}

	@Test
	public void testOneManyUnidirectionRelation() throws Exception {

		// -create EMF

		this.metaSrcClass = TestOneManyUnidirectionalMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		em.persist(test1);

		tx.commit();
		em.close();

		// -----------------------
		TestOneManyUnidirectionalMetaSource.hasRel = true;
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();

		tx = em.getTransaction();
		// remove legacy data from previous test
		tx.begin();
		Connection connection = em.unwrap(Connection.class);
		connection.createStatement().execute("delete from test_test1");
		tx.commit();

		tx = em.getTransaction();
		tx.begin();

		test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		em.persist(test1);

		FleximsDynamicEntityImpl test2 = JpaHelper.createNewEntity(em, test1Name);
		test2.set("fname", "test12");
		em.persist(test2);

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "xtest0");
		test.set("lname", "zhang");
		List test1sList = new ArrayList(2);
		test1sList.add(test1);
		test1sList.add(test2);
		test.set("test1s", test1sList);
		em.persist(test);

		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test.getId());
		em.refresh(fresh);
		List<FleximsDynamicEntityImpl> newtests = fresh.get("test1s");
		assertTrue(newtests.size() == 2);

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestOneManyUnidirectionalMetaSource.class);
	}

	@Test
	public void testEmbedded() throws Exception {

		this.metaSrcClass = TestEmbeddedMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		tx.commit();
		em.close();

		// -----------------------
		TestEmbeddedMetaSource.hasRel = true;
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();

		tx = em.getTransaction();
		tx.begin();

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "xtest0");
		test.set("lname", "zhang");
		test.set("test1", test1);

		em.persist(test);

		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test.getId());
		em.refresh(fresh);
		assertThat((String) ((DynamicEntity) fresh.get("test1")).get("fname"), equalTo("test1"));

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestEmbeddedMetaSource.class);
	}

	@Test
	public void testEmbeddedCollection() throws Exception {

		this.metaSrcClass = TestEmbeddedCollectionMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		tx.commit();
		em.close();

		// -----------------------
		TestEmbeddedCollectionMetaSource.hasRel = true;
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();

		tx = em.getTransaction();
		tx.begin();

		FleximsDynamicEntityImpl test11 = JpaHelper.createNewEntity(em, test1Name);
		test11.set("fname", "test11");

		FleximsDynamicEntityImpl test12 = JpaHelper.createNewEntity(em, test1Name);
		test12.set("fname", "test12");

		List<FleximsDynamicEntityImpl> test1 = new ArrayList<>(2);
		test1.add(test11);
		test1.add(test12);

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "xtest0");
		test.set("lname", "zhang");
		test.set("test1", test1);

		em.persist(test);

		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test.getId());
		em.refresh(fresh);
		Set<DynamicEntityImpl> list = fresh.get("test1");

		assertThat(list, hasSize(2));

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestEmbeddedMetaSource.class);
	}

	@Test
	public void testEmbeddedFromXml() throws Exception {

		// -create EMF
		this.metaSrcClass = TestEmbededXmlMetaSource.class;
		this.initEmf();

		String testName = "Embedmain";

		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();

		// object
		FleximsDynamicEntityImpl de = JpaHelper.createNewEntity(em, testName);
		TestEntityUtil.setEmbedmain(de, em);
		em.persist(de);

		tx.commit();

		// we can update

		FleximsDynamicEntityImpl de1 = em.find(de.getClass(), de.getId());
		FleximsDynamicEntityImpl embeded1 = de1.get("singleembed");
		List<Integer> mints = embeded1.get("mint");
		mints.add(9);
		tx.begin();
		em.merge(de1);
		em.close();

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestBasicMetaSource.class);
	}

	@Test
	public void testInheritance() throws Exception {

		this.metaSrcClass = TestInheritanceMetaSource.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		tx.commit();
		em.close();

		// -----------------------
		TestInheritanceMetaSource.hasRel = true;
		refreshEmf();

		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname1", "test1");

		test1.set("fname", "xtest0");
		test1.set("lname", "zhang");

		em.persist(test1);

		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test1.getId());
		em.refresh(fresh);
		assertThat(fresh.getClass().getSimpleName(), equalTo("Test1"));

		// have to remove this before we could output scripts
		// properties.remove(PersistenceUnitProperties.DDL_GENERATION);

		generateSchema(TestInheritanceMetaSource.class);
	}

	/**
	 * make sure we can use static entity mapping cache to hold the relation.
	 * This is a simulation the strategy we used in production
	 *
	 * @throws Exception
	 */
	@Test
	public void testStaticEntityMappingInstance() throws Exception {

		this.metaSrcClass = TestMetaSourceModEntity.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";
		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		tx.commit();
		em.close();

		// refresh
		TestMetaSourceModEntity.addTest1();
		refreshEmf();

		// make sure second attributes are added and table column are created
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);

		FleximsDynamicEntityImpl test1 = JpaHelper.createNewEntity(em, test1Name);
		test1.set("fname", "test1");
		em.persist(test1);
		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, test1Name), test1.getId());
		em.refresh(fresh);
		assertTrue(fresh.get("fname").equals("test1"));
		em.close();

		System.err.println("Start to generate schema---------------");
		generateSchema(TestMetaSourceModEntity.class);
		refreshEmf();

		System.err.println("Start to generate schema again---------------");
		generateSchema(TestMetaSourceModEntity.class);
		refreshEmf();
		// make sure we still can use the entity after schema generation
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);
		tx.commit();

	}

	/**
	 * make sure we can use static entity mapping cache to hold the relation.
	 * This is a simulation the strategy we used in production Verify that
	 * un-associated embedded can be inserted into entity mapping
	 *
	 * @throws Exception
	 */
	@Test
	public void testStaticEntityMappingEmbedded() throws Exception {

		this.metaSrcClass = TestMetaSourceModEmbedded.class;
		this.initEmf();

		String testName = "Test";
		String test1Name = "Test1";

		// make sure basic test works
		EntityManager em = App.getEM();
		EntityTransaction tx = em.getTransaction();
		tx.begin();
		FleximsDynamicEntityImpl test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);
		tx.commit();
		em.close();

		// refresh
		TestMetaSourceModEmbedded.addEmbedded();
		refreshEmf();

		// make sure system still works when embedded is added
		// make sure second attributes are added and table column are created
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();
		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);
		tx.commit();

		DynamicEntity fresh = em.find(JpaHelper.getEntityClass(em, testName), test.getId());
		em.refresh(fresh);
		assertTrue(fresh.get("fname").equals("test"));
		em.close();

		MetaSourceBuilder.toXml(TestMetaSourceModEmbedded.entityMappings, new OutputStreamWriter(System.out));

		System.err.println("Start to generate schema---------------");
		generateSchema(TestMetaSourceModEntity.class);
		refreshEmf();

		System.err.println("Start to generate schema again---------------");
		generateSchema(TestMetaSourceModEntity.class);
		refreshEmf();

		// make sure we still can use the entity after schema generation
		em = App.getEM();
		tx = em.getTransaction();
		tx.begin();

		test = JpaHelper.createNewEntity(em, testName);
		test.set("fname", "test");
		test.set("lname", "zhang");
		em.persist(test);
		tx.commit();

	}

	@Test
	public void testDemoRelation() throws Exception {

		// -create EMF

		this.metaSrcClass = TestDemoRelation.class;
		this.initEmf();

		// make sure basic test works
		EntityManager em = App.getEM();
		FleximsDynamicEntityImpl student = TestEntityUtil.createAndPersisteDemoRelationObject(em);

		em.close();

	}

	@Test
	public void testDemoRelationPrivate() throws Exception {

		// -create EMF

		this.metaSrcClass = TestDemoRelation.class;
		this.initEmf();

		// make sure basic test works
		EntityManager em = App.getEM();
		FleximsDynamicEntityImpl build = TestEntityUtil.createDoomBuild(em);
		EntityTransaction tx = em.getTransaction();

		tx.begin();
		em.refresh(build);
		List<FleximsDynamicEntityImpl> rooms = build.get("rooms");
		int size = rooms.size();
		rooms.remove(size - 1);
		tx.commit();

		tx.begin();
		em.refresh(build);
		rooms = build.get("rooms");
		int size1 = rooms.size();
		long roomid = rooms.get(0).getId();
		em.remove(build);
		tx.commit();

		assertThat(size1, equalTo(size - 1));
		tx.begin();
		DynamicEntity room = em.find(JpaHelper.getEntityClass(em, "Mdoomroom"), roomid);

		tx.commit();

		assertNull(room);
		em.close();

	}

	@Test
	public void testDemoRelationPrivateCascadePersist() throws Exception {

		// -create EMF

		this.metaSrcClass = TestDemoRelation.class;
		this.initEmf();

		EntityManager em = App.getEM();

		FleximsDynamicEntityImpl student = TestEntityUtil.createStudentOneManys(em);

		EntityTransaction tx = em.getTransaction();
		tx.begin();
		em.persist(student);
		tx.commit();

		em.refresh(student);
		List<FleximsDynamicEntityImpl> oneManysList = student.get("OneManys");
		assertThat(oneManysList, hasSize(2));
	}

}

redpajama_set_name: RedPajamaGithub


text:
/// Workshops
Bringing together our own and our partner educators for specialist collaborative masterclasses. Your ticket also allows Onsite General Admission to Signals Festival on the day of your workshop.
General admission tickets and programme available here >>> Signals Festival 2021 Tickets
Friday 15th workshops & tickets
14:00 - 15:00: NowHere Media: VR Storytelling Masterclass tickets with Felix Gaedkte (NowHere Media)
15:00 - 16:30: The art of listening: Mastering tickets with Conor Dalton (Glowcast Mastering) (online)
16:00 - 18:00: Free signal liberation: no-cost modular synths tickets with Peter Kirn (CDM)
Saturday 16th workshops & tickets
14:00 - 15:30: Found objects and self-made instruments tickets with Pablo Diserens (Ōtone)
14:00 - 15:30: Audiovisual production: TouchDesigner tickets with Paulina Greta (Imaginaria)
15:00 - 17:00: XLR microphone cable soldering tickets with Stefan Knauthe
16:30 - 19:00: Impro Jam tickets with Akkamiau (female:pressure)
Found objects & self-made instruments as creative tools
with Pablo Diserens (Ōtone)
Saturday 16th, 14:00 - 15:30 / €9
This workshop is an introduction to the creative uses and possibilities of found objects and self-made instruments within electronic and electroacoustic composition and performance. Split in two parts, the first half of the talk will present the work of a variety of artists that compose with such practices. After mapping a genealogy, the second half will explore the various techniques and tools that one can use and combine with their objects for compositional and performing purposes. This will include a live hands-on demonstration by Pablo Diserens with a selection of microphones and objects (incl. from their 'Tetsu' series). The workshop aims to spark ideas on how one can create their very own sets of sounds and how to implement them within their respective practice.
/// About the artist host
Pablo Diserens (aka Ōtone) is an artist, field recordist, composer, filmmaker and photographer based in Berlin, who engages with various topo- and phonographies with a wide range of visual and sonic recording techniques. As a composer, they elaborate sonic environments and electroacoustic sound pieces embedded in sonic ecology and acousmatic forms by fusing and altering an array of field recordings, found objects and self-made instruments. Under their moniker 'Ōtone', Diserens investigates abstract industrial soundscapes by manipulating sounds from the real and from their series of self-made metallic objects, called 'Tetsu', that they use as compositional tools and performable instruments.
Free signal liberation: no-cost modular synthesis
with Peter Kirn (CDM)
Friday 15th, 16:00 - 18:00 / €9
Liberate yourself in how you imagine timbre, rhythm, tune, and pattern using signal flow - without money and space as being a barrier to entry. Let's discover modular synthesis and its potential for musical expression using free and open-source tools. And let's talk about how that can also be used to share, play together, and support one another in our music-making.
Modular synths look great with their custom racks and mess of wires, but they can also feel impenetrable - you need money for gear, you need space (and lifting power), and that's even before you figure out how to use them. But we can use free software to get over some of those hurdles. Using VCV Rack, we'll get started from scratch on any recent Mac, Windows, or Linux PC. No previous experience is required, but even then we may be able to learn some new tricks. We'll explore the fundamentals of modulation and how it can be combined into strange, new sounds, with some recipes for unique sound construction. And then we'll also get off the grid with techniques that allow free, open-ended composition entirely using signal. Then we'll look at how this can be combined into an improvisatory live performance to make it easier to jam without using pre-made patterns and sounds.
Expect to wrap up with some time for collective experimentation and answering questions, plus a full-ensemble noise/drone piece together.
Composer/artist, curator, and writer Peter Kirn produces music that is dark and playful, in cosmic fantasies brewed in modern dance studios and grimy dance floors. He explores the culture of making electronic music and motion technologies on his daily site cdm.link, co-produces the MeeBlip line of electronic instruments, and creates collaborative performance laboratories including the MusicMakers Hacklab with CTM Festival. With a background in concert music composition including co-directing the Contemporary Ensemble at the CUNY Graduate Center, his music has appeared on Detroit Underground, Snork Enterprises, Wunderblock Records, Instruments of Discipline, and his own Establishment. He has also worked collaborations ranging from making field recordings with the European Space Agency to playing a techno live jam in a Moscow hologram gallery, from experimental performance and installation in kinky parties to explorations of architecture and spatial music.
Methods for audiovisual production with Touchdesigner
with Paulina Greta
The workshop seeks to explore the elements involved in the processing of audiovisual information, focusing attention on the parameters and the mechanisms underlying digital image structure and dynamics. Examples of classic methods of image processing, using audio as source of manipulation, will be presented and practically implemented.
Participants should bring their laptops with TouchDesigner installed. Work created during the workshop will be incorporated into the A/V live performance of 'Ignes Fatui', performed at the festival later that night by Imaginaria + Alessandro Adriani.
Beginner-Intermediate level knowledge of Touchdesigner.
Paulina Greta is a Berlin-based artist and creative director focused on interactive storytelling and its declinations between gaming and non-linear narratives. Her practice spans installation, performance, film direction, augmented and virtual reality. Her works have been featured at international venues and multimedia festivals such as Atonal Berlin, LCF at Macro (Museum of Contemporary Art of Rome), Milan Design and Fashion Weeks, festivals in the Netherlands, Cile, Russia.
The art of listening: Mastering
with Conor Dalton
An introduction to the concept of mastering modern music with cutting edge techniques and tools.
This is an online workshop happening on Zoom and is meant to serve all musicians, studio engineers and enthusiasts out there! Some prior experience in making music, mixing, sound engineering, and an interest in mastering is a plus but not essential.
Conor Dalton has 15 years of professional mastering experience with his company Glowcast Audio Mastering, working on music from Daft Punk, Jeff Mills, Marcel Dettmann, Ricardo Villalobos, Carl Craig, John Digweed, Maceo Plex, and many more.
He's also one of the engineers at Calyx mastering in Berlin where his clients include Rødhåd, Dubfire, Moderat, as well as tutor at Berklee School of Music (Valencia), Tutor at Shoogle Studios (Glasgow) and musician in the band "Island People" (Raster).
Conor was the winner of "Sound engineer of the year 2012" from the Scottish new music awards. He is also a published writer in Music Tech Magazine worldwide and has previously worked at the world famous Joao Carvalho Mastering studios in Toronto.
VR Storytelling Masterclass
with Felix Gaedtke (NowHere Media)
NowHere Media is an award-winning studio in Berlin crafting virtual and augmented experiences that enable audiences to view contemporary issues through a critical lens. From covering war in Syria to chasing snow leopards in the Himalayas, they tell untold stories, breaking taboos and silences.
Join co-founder of Nowhere Media, Felix Gaedtke, for a special masterclass on his experience developing VR documentaries to engage audiences and create impact in the real world.
Experience the full story
Participants of this masterclass will also have the opportunity to experience the full immersive VR story, Home After War and/or Kusunda, at Signals Festival (additional time-slot booking required).
Home After War tells the story of an Iraqi father who returns to Fallujah to face the threat of improvised explosive devices (IEDs). Through this virtual reality experience, join him in his home and discover the unfolding of a tragic event.
In the documentary VR experience Kusunda, you meet Hima as she reminds her grandfather of his forgotten mother tongue (Kusunda, Nepal). Navigate through the narrative by speaking words in the sleeping indigenous language, and join the fight for its revitalisation.
Felix Gaedtke is an acclaimed immersive storyteller and creative producer currently based in Berlin. He co-founded the immersive storytelling studio NowHere Media with an urge to create spaces for under-represented voices in mainstream discourses. His passion to convey different realities across the world has led him to working with VR and AR storytelling techniques. His most recent work Kusunda takes you into the lives of an indigenous group in Nepal and their fight for language reclamation. Kusunda recently won the prestigious Storyscapes Award at Tribeca Film Festival. He is a Sundance New Frontier alumnus and has also won 'Best Use of Immersive Arts' at SXSW as well as the Lumiere Award for 'Best VR documentary' among other accolades. Felix's immersive works have been exhibited at the Venice International Film Festival, SXSW, Cannes XR, the UN, HotDocs, Bergen International Film Festival and beyond.
XLR Microphone Cable Soldering
with Stefan Knauthe
Saturday 16th, 15:00 - 17:00 / €10
Professional cables are a must-have in every recording studio. Low quality wiring makes the best equipment useless. In this workshop you will learn how to professionally solder a symmetrical microphone cable. Catalyst's very own Electronic Music Production tutor and music technician Stefan, will show you how to tailor a good quality cable from budget building parts and provide tips and tricks you need to DIY every cable in your home studio setup.
This workshop is limited to 6 participants. Equipment & accessories will be provided at the workshop, self soldered cable can be taken home after!
Stefan Knauthe is a music producer, composer and synthesist with a lifelong passion for sound and electronic music, Ableton Certified Trainer and Electronic Music Production Tutor and Technician here at Catalyst Berlin. He teaches several music production workshops, including Audio Production, Sound Design, Mixing Practice and many more at Catalyst as well as outside at events and large conventions such as Superbooth and Loop. As a music technician he was involved in the setup of all large format studios and tailored many of the studio's electronic connections. As a musician he is interested in ambient music textures and structures and builds ambient music pieces with modular synthesis equipment.
Impro Jam
with Akkamiau and female:pressure
Saturday 16th, 16:30 - 19:00
An electronic jam session focused on learning improvisation techniques and creating an immediate (live) soundtrack for a visual narrative. A short movie will provide the context of the improv session, with the goal being a liminal performance.
The term 'limen' (latin, threshold) or liminal was used by Victor Turner in his work on anthropology and performance to describe a certain marginalised space, which holds the possibility of potential forms, structures, conjectures and desires, a space that the performance works occupy. Liminality can perhaps be described as a fractal chaos, a fertile nothingness, a storehouse of possibilities, not by any means a random assemblage but a striving after new forms and structure (Turner, 1990).
This workshop is limited to a capacity of 10. Small controllers will be provided, or for those participants who want improvise with their own sounds you can bring you own laptop + small controller.
female:pressure is a transnational online database and network of women*, AFAB, transgender, transfeminine, transmasculine, intersex [+gender optional], genderqueer, gender nonconforming, a-gender and/or non-binary DJs, musicians, composers, producers, visual artists, agents, journalists and researchers working in the realms of electronic music and visual arts.
Lena Kocisova (@akkamiau / hithertoo) is an audiovisual artist and event coordinator, resident in Berlin. Since 2013 she has been the coordinator and booker for the female:pressure circle, and the festival Perspectives Berlin. As hiT͟Hərˈto͞o she performs live experimental techno, with releases on female:pressure, Kashev Tapes, SPRINGSTOFF and Establishment records. As Akkamiau she released the EP Interjections [DETUND] and produced a/v performance Interjections (Liminal Act) in collaboration with collapsetofraction collective in 2019. Akkamiau's latest EP Ediacaran was released on DETUND on March 30th 2021.
/// About Signals Festival
Exploring art and technology, Signals Festival is an annual showcase of Catalyst Berlin's emerging and diverse creative communities. A non-profit, educational event with live performances, installations, screenings, workshops and in-depth dialogue
Sign up to our newsletter for updates and details on how join the festival in person and when & where to follow online.

redpajama_set_name: RedPajamaCommonCrawl


Hundreds of protesters clash with troops in Indian-administered Kashmir after Rizwan Asad Pandit dies in police custody.
Srinagar, Indian-administered Kashmir - Hundreds of protesters clashed with Indian security forces in parts of Indian-administered Kashmir after police said a man detained over a security investigation died in police custody.
Rizwan Asad Pandit, a 29-year-old chemistry teacher, was arrested as part of "terror case investigation", the police said in a statement on Tuesday. "The person died in police custody," the police said, adding an investigation into the cause of his death was under way.
Pandit's family condemned his death as a "cold-blooded murder" as crowds gathered in the southern Pulwama district in protest. Security forces fired tear gas at protesters as authorities suspended internet services in the region.
Mubashir Asad, Pandit's brother, said police arrested Pandit at his home in the Awantipora village late on Sunday night. "They said he would be released soon. My brother was not involved in anything. This is a cold-blooded murder," he said.
Tensions in Kashmir, a region claimed by both India and Pakistan, have been high since a suicide bombing killed 42 Indian soldiers in the Pulwama district in February.
New Delhi blamed Islamabad for harbouring the armed group, Jaish-e-Muhammad (JeM) that claimed responsibility for the attack, and launched a retaliatory air raid inside Pakistan, a move that brought the nuclear-armed neighbours to the brink of war.
India also banned the Jamaat-e-Islami (JeI) political party in Kashmir and arrested some 300 of the group's leaders and activists.
A senior police official, speaking on the condition of anonymity, said Rizwan was detained over the Pulwama attack. "We had some information that he knew how to make explosives and suspected his role in the recent attack," the official said.
Following Rizwan's death, separatist leaders in Indian-administered Kashmir called for a shutdown in the region.
Mirwaiz Umar Farooq, chairman of the separatist umbrella All Parties Hurriyat Conference, denounced Rizwan's death in a post on Twitter, saying: "The brutal killing once again exposes the helplessness, vulnerability, and insecurity to the lives of Kashmiris as the impunity of the authorities keeps rising," he said.
Rights groups claim hundreds of people detained by Indian security forces following a 1989 armed revolt have died in state custody, although there are no official figures.
Yet, no one has been brought to justice for such deaths, said Khurram Parvez, a human rights activist.
While custodial deaths have not been common in recent years, Rizwan's death "adds to the more than 70,000 killings, more than 8,000 enforced disappearances, as well as thousands of torture and sexual violence cases" in Indian-administered Kashmir over the past three decades, he said.
India and Pakistan have fought three wars since their independence from Britain, two of them over Kashmir.
Rebel groups in Indian-administered Kashmir have for decades battled troops and police, demanding independence or a merger of the Himalayan territory with Pakistan.
Can the Kashmir conflict ever be resolved?


text:
package inter

import (
	"time"

	"github.com/go-air/gini/z"
)

// Interface Solveable encapsulates a decision
// procedure which may run for a long time.
//
// Solve/Try returns
//
//  1  If the problem is SAT
//  0  If the problem is undetermined (Try only)
//  -1 If the problem is UNSAT
//
// These error codes are used throughout gini.
type Solvable interface {
	Solve() int
	Try(dur time.Duration) int
}

// Interface GoSolvable encapsulates a handle
// on a Solve running in its own goroutine.
type GoSolvable interface {
	GoSolve() Solve
}

// Adder encapsulates something to which
// clauses can be added by sequences of
// z.LitNull-terminated literals.
type Adder interface {

	// add a literal to the clauses.  if m is z.LitNull,
	// signals end of clause.
	//
	// If the implemation of Add is a solver under a test scope
	// then Add undoes the test.
	//
	Add(m z.Lit)
}

// Interface MaxVar is something which records the
// maximum variable from a stream of inputs (such
// as Adds/Assumes) and can return the maximum of
// all such variables.
type MaxVar interface {
	MaxVar() z.Var
}

// Liter produces fresh variables and returns the corresponding
// positive literal.
//
type Liter interface {
	Lit() z.Lit
}

// Model encapsulates something from which a model
// can be exracted.
type Model interface {
	Value(m z.Lit) bool
}

// Assumable encapsulates a problem
type Assumable interface {
	Assume(m ...z.Lit)
	Why(dst []z.Lit) []z.Lit
}

// Interface Testable provides an interface for scoped
// assumptions.
//
// Testable provides scoped light weight Solving and tracking
// of implications.
//
// A Solvable and Assumable which also implements Testable has the following
// semantics w.r.t. Assumptions.  All calls to Assume which are subsequently
// Tested before calling Solve() remain until a corresponding call to Untest.
//
// Put another way, Solve() consumes and forgets any untested assumptions
// for a given Solve process.  To forget tested assumptions, the user
// must call Untest().  Tests and Untests may be nested.
type Testable interface {
	Assumable

	// Test the current assumptions under unit propagation.
	// append the resulting propagated literals since the last
	// test in dst, if dst is not nil, and return
	//
	//  result: -1 for UNSAT, 1 for SAT, 0 for UNKNOWN
	//  out: the propagated literals since last Test,
	//       stored in dst if possible, or nil if out is nil.
	//
	// Once Test is called on a set of assumptions, all
	// future calls to Solve do not consume and forget
	// assumptions prior to test.
	Test(dst []z.Lit) (result int, out []z.Lit)

	// Untest removes the assumptions from the last test.
	// Untest returns -1 if the result is UNSAT, and
	// 0 (indicating unknown) otherwise.  If the result is
	// -1, then Test should not be called.
	Untest() int

	// Reasons returns the reasons for implied, storing
	// the result in rs if possible.
	Reasons(rs []z.Lit, implied z.Lit) []z.Lit
}

// Interface S encapsulates something capable
// of a complete incremental SAT interface
// enabling composing solvable, assumable, model, testable,
// and GoSolveable.
type S interface {
	MaxVar
	// Although an S can generate literals via Liter, it
	// doesn't have to.  One can just send arbitrary variables
	// via Adder, Assume, etc.  Liter is useful for applications
	// which need a way to know how to generate new variables/literals.
	Liter
	Adder
	Solvable
	GoSolvable
	Model
	Testable

	// Can create a copy.  A copy copies everything in the S interface
	// and nothing more (such as simplifiers).
	SCopy() S
}

// Interface Sv encapsulates an S which has the need or capacity to use inner
// variables which are hidden from the user.
type Sv interface {
	S

	// Inner returns the positive literal of a new inner variable.
	Inner() z.Lit

	// FreeInner frees the previously inner-allocated variable
	// associated with m.  If m's variables was not previously
	// allocated with Inner, then FreeInner and all subsequent
	// usage of Sv is undefined.
	FreeInner(m z.Lit)
}

// Interface Sc is an interface for a concurrent solver which
// must be stopped in order to free goroutines.
type Sc interface {
	S

	// Stop stops the Sc and should be called once.  Once stop
	// is called all behavior of Sc is undefined.
	Stop()
}

// Activatable provides support for recyclable activation literals
//
// Caveats: activation clauses must not be empty under unit propagtion
// at level 0.  The caller should ensure this by construction.
type Activatable interface {
	// Activate should be called in place of Add(0) to activate a
	// clause.  Activate returns the activation literal, which, if assigned
	// activates the last added clause.
	//
	// If the last clause is empty, then Activate panics.  The caller
	// should only activate non-empty clauses.  Note that in incremental
	// settings, one may have to verify whether or not a clause is
	// empty.
	//
	// like `Add()`, Activate should only be called at decision level 0.
	Activate() z.Lit

	// ActivateWith is like Activate but it allows the caller to specify
	// the activation literal `act`.  The activation literal should
	// be `pure`, meaning that `act.Not()` does not appear anywhere in
	// any clause added.  Note that deactivation of literals passed to
	// ActivateWith causes them to be recycled.
	ActivateWith(act z.Lit)

	// ActivationLit returns a literal to be used with ActivateWith.
	// As all other Activation related methods, ActivationLit is
	// not supported under test scopes.
	ActivationLit() z.Lit

	// Deactivate deactivates an activation literal as returned by
	// Activate.
	//
	// like `Add()`, Deactivate should only be called at decision level 0.
	Deactivate(m z.Lit)
}


text:
Fleet and Marine Tracker
Home » Budget Industry » LPD John Murtha Completes Acceptance Trials As Navy, Congress Mull Program's Future
LPD John Murtha Completes Acceptance Trials As Navy, Congress Mull Program's Future
By: Sam LaGrone
John Murtha (LPD-26) during acceptance trials. HII Photo
The tenth San Antonio-class amphibious warship (LPD-17) successfully completed its acceptance trials last week, while on Tuesday the House Armed Services Committee proposed legislative language that could add a 13th LPD to the service.
John P. Murtha (LPD-26) completed six days of Navy's Board of Inspection and Survey (INSURV) trials in the Gulf of Mexico. The trials – in addition to the normal tests of the ships propulsion and combat systems – included tests of an upgraded radar and changes to the ships digital network, shipbuilder Huntington Ingalls Industries LPD program manager Kari Wilkinson told USNI News on Tuesday.
"We went through the schedule of events. We demonstrated what we needed to demonstrate and got back pier-side on schedule," she said.
"We don't like surprises."
The changes included an a change to the ship's 3D air search AN/SPS-48 radar and technology upgrades and obsolesce tweaks to the Ship Wide Area Network that uses miles of fiber optic cables to connect the Murtha's systems.
In a Tuesday statement, the service praised Murtha's performance.
"It's been two and half years since Ingalls last conducted LPD acceptance trials," Supervisor of Shipbuilding Capt. Joe Tuite said in the statement.
"The team did an excellent job preparing the ship for a successful trials period. The ship was cleared for sea on the morning of the second day, the earliest of any of the previous nine LPDs."
Also on Tuesday, the House Armed Services Committee introduced its proposed Fiscal Year 2017 National Defense Authorization Act in which the committee funded the start of construction for an amphib, which could either be the 13th San Antonio ship or could be used to build the first LX(R) ship that replaces the current Harpers Ferry- and Whidbey Island-class (LSD-41/49) amphibious warships.
A committee staffer told reporters that HASC members were pleased with the performance of Ingalls shipyard and were interested in keeping the production line at the Mississippi yard hot as the Navy transitions to the LX(R) platform.
In late 2014, the Navy elected to use the LPD-17 hull as the basis of its LX(R) design, and Congress responded by including funding for a 12th San Antonio – LPD-28 — to keep Ingalls viable until the LX(R) program was ready to begin construction activity.
"We're very interested in accelerating 28," Wilkinson said.
"And if 29 or the LX(R) program come along … we're very interested in keeping that production line going because we're seeing the benefits. We're in a very good place on that program."
Article Keywords: HII, Huntington Ingalls Industries, Ingalls Shipbuilding, LPD 17, San Antonio-class
Categories: Budget Industry, News & Analysis, Surface Forces, U.S. Navy
About Sam LaGrone
Sam LaGrone is the editor of USNI News. He was formerly the U.S. Maritime Correspondent for the Washington D.C. bureau of Jane's Defence Weekly and Jane's Navy International. He has covered legislation, acquisition and operations for the Sea Services and spent time underway with the U.S. Navy, U.S. Marine Corps and the Canadian Navy.
Follow @samlagrone
View all posts by Sam LaGrone →
← UPDATED: HASC Proposes $20.6B In Shipbuilding, 4-Year Carrier Builds, Possible LPD-29 Document: Report to Congress on U.S. Coast Guard Icebreaker Program →
USNI
Sign up for USNI News
Get USNI News updates delivered to your inbox
Title ---- Lieutenant First Sergeant Airman Admiral Ambassador General Brother Constructionman Cadet Captain Chief Commander Commodore Chaplain Master Chief Chief Master Sergeant Colonel Corporal Sergeant Major Mister Chief Warrant Officer Diplom-Ingenieur Dr. Ensign Fireman First Admiral Father Fleet Master Chief Force Master Chief Guarda-Marinha Gunnery Sergeant Hospitalman The Honorable Judge Justice Mayor Mr. Ms. Secretary Senator Kaptain Lance Corporal Lord Major Master MCPL Master Gunnery Sergeant Midshipman Miss Machinists Mate Mrs. Master Sergeant Sergeant Private Petty Officer Professor Rabbi Reverend Seaman Senior Chief Sir Sister Specialist Squadron Leader Staff Sergeant Wing Commander Warrant Officer
Budget Industry
Education Legislation
Surface Forces
Tweets by @USNINews
© 2012-2020 U.S. NAVAL INSTITUTE Powered by Unleashed Technologies
Member Services call 800-233-8764 or 410-268-6110


To dream that you escape from jail or some place of confinement suggests that you wish to be free of some circumstance that is holding you down. On the contrary, this could be a way to evade responsibility over things that will not disappear.
To dream that you escape from injury indicates that you have good health and fortune. Things will work out your way.


text:
Author: Thanos5150 ()
Martin Stower Wrote:
> Where he waves at the wall and says "I think we
> have the, year 17, it was—it's fading" is in
> Lady Arbuthnot's Chamber:
> https://www.dailymotion.com/video/xiwylg?start=1990
This video is uncomfortable at times.
At the 33:10 mark he starts talking about it. I can't understand what he says at the start but, something like "and soon we'll have the year 17" then he says "...it was...it's fading...on the other side here. You can see remains of graffiti".


The ZShock Logo T-Shirt in aqua white takes two great colors and combines them to create a great ladies t-shirt. Rep one of your favorite jewelry brands and look good doing it. Made with 100% preshrunk ring spun cotton and available in various sizes ranging from small to XXL. Other color combinations are available, see the category section for all your options. Allow 7-10 business days, plus shipping time for delivery. Rush service may be available. If you have a particular color combination or style you would like that you don't see, simply call or contact us and we may be able to custom make a ZShock t-shirt in your custom color combination. Please note that this ladies t-shirt is a fitted style and can run small.


Portable chair seats from baby (approximately 3 months) to 75 lb. child. Patented feature: as the baby grows, the seat can unvelcro to reveal two leg holes perfect for letting baby stand with support. Easy to set up.
5 point removable harness keeps baby secure and comfortable.
Removable snack tray, sun canopy and carry bag included.
Travel with ease using the Baby Delight Go With Me Chair in the gray style. The 5 point removable harness makes your stable baby secure and comfortable as they sit upright in the seat. As baby grows, the seat can unvelcro to reveal two leg holes perfect for letting baby stand with support. The chair can then be used through toddler and big-kid ages, either with or without the snack tray. Indoor/outdoor polyester along with the included sun canopy makes this the perfect chair to carry with you for use outdoors, or anywhere indoors.
Great for all outdoor activities: camping, sporting events, beach, etc. Indoor/outdoor polyester fabric is resistant to fading, stains, and mold.


text:
Writing the Wrong Way with Jonathan Ball, PhD
Martian Embassy Media Arts Writing The Wrong Way With Jonathan Ball PhD
By Writing the Wrong Way with Jonathan Ball, PhD and Writing the Wrong Way with Jonathan Ball. Discovered by Player FM and our community — copyright is owned by the publisher, not Player FM, and audio is streamed directly from their servers. Hit the Subscribe button to track updates in Player FM, or paste the feed URL into other podcast apps.
Writing the Wrong Way is the perfect podcast for serious writers who want to stand out in a crowded industry by becoming more productive while taking more artistic risks. Jonathan Ball is an award-winning author of dark, experimental artworks. He holds a PhD in creative writing and uses an analytical approach to show serious writers new ways to write, edit, and work so they can create innovative art that stands taller than the crowd. https://www.strangerfication.ca/
Similar to Writing the Wrong Way with Jonathan Ball, PhD
Jeremy Robinson
Three thousand years after a chunk of iron the size of Khufu's pyramid collides with Europa, Jupiter's sixth moon, an asteroid borne of the collision crashes into Earth's Arctic ice shelf carrying extraterrestrial microbial life. The first man to come into contact with the microbes hears voices—and then dies. After determining the meteorite originated from Europa, the Global Exploratory Corporation sends oceanographer and biologist, Kathy Connelly, and her crew to the moon aboard the Surveyo ...
iFanboy - Comic Books
The iFanboy.com Comic Book Podcast is a weekly talk show all about the best new current comic book releases. Lifelong friends, Conor Kilpatrick and Josh Flanagan talk about what they loved and (sometimes) hated in the current weekly books, from publishers like Marvel, DC, Image Comics, Dark Horse Comics, BOOM! Studios, IDW, Aftershock, Valiant, and more. The aim is to have a fun time, some laughs, but to also really understand what makes comic books work and what doesn't, and trying to under ...
Making It With Jimmy Diresta, Bob Clagett and David Picciuto
Jimmy Diresta, Bob Clagett and David Picciuto
Making It is a weekly audio podcast that comes out every Friday hosted by Jimmy Diresta, Bob Clagett and David Picciuto. Three different makers with different backgrounds talking about creativity, design and making things with your bare hands.
Scheer Intelligence
Scheer Intelligence features thoughtful and provocative conversations with "American Originals" -- people who, through a lifetime of engagement with political issues, offer unique and often surprising perspectives on the day's most important issues.
Comic Geek Speak Podcast - The Best Comic Book Podcast
Speakers of Geek
Comic Geek Speak is the best podcast about comic books for fans and new readers alike. Put together by a group of life-long comic geeks, it's 4-5 hours a week of comic book history, current comic news, and a general look at the industry. In addition to all the latest in comics talk, the show also features creator interviews, listener responses, contests, and trivia, lots of trivia. So listen in and experience all the joys of a Wednesday afternoon at the comic shop, from the comfort of your o ...
seconds ago 1m ago
Picture This: Photography Podcast
Chelsea & Tony Northrup
Chelsea and Tony Northrup's photography podcast - dig deep into the history, science, and personalities of photography.
Tangentially Speaking with Christopher Ryan
Christopher Ryan
Ever wanted to hang with a comedian, dominatrix, health guru, bank robber, author, or Italian prince? Well, here's your chance. Tangentially Speaking is dedicated to the idea that good conversation is organic, uncensored, revelatory, and free to go down unexpected paths.
WBEZ Chicago
Ask questions, vote and discover answers about Chicago, the region and its people. From WBEZ.


United We Stand | Brandon S. Russell, Ph.D.
I wrote this short essay during my senior year of high school as part of my application to Rice University (I was accepted). Download a PDF copy here.
Dr. Martin Luther King Jr. once said, "I have a dream that one day...little black boys and black girls will be able to join hands with little white boys and white girls and walk together as sisters and brothers." Today that dream can be a reality. Not just for a white teenager from the state Dr. King once called "a desert state, sweltering with the heat of injustice and oppression," but for all groups that have been divided by strife: Catholics and Protestants, Israelis and Lebanese, Jews and Gentiles. The power to become a brother or a sister is with the individual, not the group to which he or she belongs. All it takes for this dream to become reality is for people to unite behind a common goal because beyond our race and our religion, we are all human.
In the summer of 2002, the Mississippi Hugh O'Brian Youth (HOBY) Leadership Conference selected me to represent Mississippi at the HOBY World Leadership Congress. The Congress brought together nearly four hundred high school students for a week of leadership education and discussion, culminating with the ratification of a statement on world leadership authored by all the students. Ambassadors represented all fifty states and more than twenty foreign countries. Being from a town of only ten thousand people, I quickly learned what culture shock was. While waiting for my room key, I met students from Alaska and New York; when I opened the door to my room, I introduced myself to students from Vermont, New Jersey, and Taiwan. Already my horizons had expanded miles beyond what I knew, and I had not even begun serious discussions.
The diversity increased when we were split into our discussion groups. My group of about twenty students included Mexicans, Canadians, Catholics, Protestants, Atheists, Southerners, and Yankees. Through the week we spent nearly every waking hour together, sightseeing, attending seminars, and most of all talking. No matter what topic came up, we were able to discuss it openly. I talked freely about southern race relations with African Americans and Lebanese Americans, about United States international intervention with Liberals and Conservatives, and about economic discrimination with wealthy students and middle class students. Our differences never occurred to us. We were all leaders of tomorrow and were all there for the same purpose: to learn how to make the world a better place.
That spirit of cooperation continued as a group of more than eighty of us met to draft our section of the statement on world leadership. We looked past our races, religions, and selves as we affirmed the needs of the world. Students from the United States talked with students from Sierra Leone about poverty and malnutrition. Christians talked with Muslims and atheists about the need for education based on a fundamental system of morality. We all agreed on the need for an end to terrorism. For a person raised in the racially polarized atmosphere of the Deep South, it was an incredible sight. Still, it did nothing to prepare me for what came later. Midway through the week, all the students met together to watch presentations made by the international students about their home countries. During the question-and-answer session that followed, a student asked Firas, the ambassador from Lebanon, about his country's long-standing animosity toward Israel. Firas did not answer the question. Instead he stood up, walked over to Rami, the ambassador from Israel, and shook his hand. They embraced, and held up their hands in the sign for victory. The applause was deafening. In that auditorium full of high school students, bigotry, hatred, and fear had been defeated.
The sense of wonder stayed with us for the remainder of the week. We all knew that once we left the Congress, unity would not come so easily. On the final day, this knowledge had visibly affected everyone. We needed something to keep hope in our hearts and remind us that faith in humanity is always justified. That night we gathered in the grass of an unlit park, each of us holding a candle. As we formed a great circle, the directors lit two or three candles, and we passed the flames around to each ambassador to remind ourselves to spread always the fire of leadership. Someone started to hum "Lean on Me," and soon the entire circle errupted in song. Blowing out our candles, we all joined hands and sang. I knew that moment that my life changed forever. I knew that we were sisters and brothers.


It's the start of Lent. In the Philippines, this means that Catholics are expected to go to Mass and walk around with ashes on their foreheads. Those who don't, well, they get asked by their mothers why they didn't go to Mass on a holy day of obligation. Oh, and if they're old enough, they're expected to eat only one meal for the day. No meat, of course.


"Y2K" is over, so there's nothing to worry about, right?
First of all, calling it "Y2K" was wrong – the problem was a "Date Rollover Problem" that wasn't specific to the years 1999 or 2000.
It seemed like the year 2000 was going to cause problems, but the explanations given by the popular media were based on a couple of assumptions that just didn't hold up. The assumptions were: 1) the fixed, or constant part of the date was "1900" and 2) the variable part of the date was going to change from "99" to "00", sending us back to the year 1900.
What was overlooked was the method that was used to store these items of information.
Information is rarely stored in computers in a way that is easily readable by people. All too often it is stored in a coded form, so that it makes more efficient use of what storage space is available.
So what is the smallest amount of storage space that is required to store the value "1900"? What's the absolute minimum? In binary, the number is 11101101100, which is eleven binary digits (or 'bits'). Assigning a minimum of eleven bits to store this part of the information means that this storage area can store a number between 0 (zero) and 2047. There is NOTHING to justify the assumption that the fixed part of the date was "1900". It could have just as easily been "1950", "1960", "2000" or some other value within that available range. All we can validly assume is that (with this scheme) there would have to be at least eleven bits available to store this part of the number, because ten bits only gives a range of 0 to 1023 (and that just doesn't seem comfortable).
So what is the smallest amount of storage space that is required to store the value "99"? What's the absolute minimum? In binary, the number is 1100011, which is seven bits. Assigning a minimum of seven bits to store this part of the information means that this storage area can store a number between 0 (zero) and 127. There is NOTHING to justify the assumption that the variable part of the date would become "00". It could have just as easily become "100". All we can validly assume is that (with this scheme) there would have to be at least seven bits available to store this part of the number. It's entirely likely that there would be eight bits allocated to store this information, and that the variable part of the date might go as high as 255 before causing any rollover problem.
If the number "1900" was stored in a human-readable form, the problem gets worse. If it is stored as regular ASCII data, then each of the characters "1". "9" and "0" require a minimum of 7 bits to store it, for a total of 28 bits for the 4 characters. Bits are usually grouped in eight, so we're probably looking at 32 bits to store these 4 characters.
So who should care about splitting a year value into two parts? It's only a few bits, maybe 16, maybe 32, maybe something else. Why should it matter at all?
In the early days of computing, the machines were big, limited and slow. It didn't seem like it at the time, but we can see that from our current perspective. Memory space was tiny, and having 4028 or 8056 memory locations for a program was typical. Hard disk drives didn't exist yet, and data was stored on (paper or magnetic) tape or on punched cards.
As an example, I remember reading about one of the largest data processing operations in northern California in 1972. They had a whopping 100 megabytes of data online! Of course by then, the hard disk drive had been invented (they just weren't storing much yet). Today, as this is being written, you can't even buy a new 100 megabyte drive anymore – they're too small!
As the sizes of data files grew (back in the early days of computerdom), it became more and more important to make efficient use of the space that was available. If you could avoid the expense of having to punch a second card by cramming all of the required information onto one card, then you crammed it into one card. If you could make your entire database fit onto two tape transports instead of four, then you did it (because the accounting department frowned on spending the extra thousands of dollars, possibly tens of thousands of dollars for the extra tape machines).
You could embed the fixed part (like "1900") into your program, where it would only be stored once, and embed a variable part into a data record. Each record wouldn't need to allocate 16 bits or 32 bits to store the variable part of the year value, but could store half that or less, depending on what scheme you chose. Maybe you could save the company the cost of half a million punched cards per year, if you only stored the variable part of the year with each data record.
Programmers in the early days had to shave things this way. Sometimes it was to save costs, other times it was because there just wasn't any other way to make it fit into the system.
Assuming that the minimum amount of information allocated to store the variable part of the year value was 8 bits, the potential for the variable part of the year value ranges from 0 (zero) to 255. If we assume that the fixed part of the year's value is 1900, and add the variable part to that, we get a date rollover problem in the year 2155.
If one of the 8 bits in the variable part of the year's value is used to indicate a minus sign, the range changes to –127 to 128. Again assuming a fixed value of 1900, this means that the rollover problem can be expected in the year 2028.
These assumptions are only of limited usefulness, for exploring different aspects of the problem. There are other ways of encoding the information as well, and they may or may not have been used by early programmers.
Most folks cannot tell when a date rollover problem will occur. Many talented and experienced programmers cannot tell. It takes a very specialized analyst to determine if a system has a potential problem, and it takes pragmatic testing to see if the problem exists (and to see if the 'fix' works!).
The bottom line is: you might see the "Date Rollover Problem" cause some interesting disruptions of service at some point during your lifetime. Then again, you might not. Don't worry about it, it's not likely to cause 'The End Of Civilization As We Know It'.
If you want to ask me questions about this stuff, please feel free to do so.


text:
From Where We Sit
Toward a more independent 'Independent Directors'
Renan Piamonte 11 May 2016
The year 2016 will be a period in history when we see the changing of the guards. We should be ready for the new administration at the end of next month. And in a parallel world of corporate finance, the listed or public companies in the country shall witness changes in their Independent Directors (IDs) if they start implementing the new rules regarding these officials.
In December 2011, the Securities and Exchange Commission (SEC) issued Memorandum Circular (MC) 9, which, among others, limits the term of the independent directors to a total of 10 years, with two years of a "cooling-off" period between two terms of five consecutive years for listed, public and mutual fund companies. As 2016 is the fifth year of effectivity for the Circular, we should start seeing its implementation in the coming months.
The rule on term limits is actually timely. Of the 30 companies comprising the PSEi, IDs hold about 30 percent of the more than 300 available board seats; much higher than the 20 percent minimum composition required by the SEC. However, a closer look at the details will also show that 80 percent of PSEi companies have at least one ID serving for at least five years.
The said Circular took effect January 2012 and all previous terms served by IDs are not included in the application of the term limits. Had the application of the MC been retroactive, more than half of the PSEi companies would need to replace at least one ID who had already reached the 10-year aggregate limit.
It is fairly easy to see the wisdom behind this Circular. Being a director for some period of time can breed familiarity and makes it relatively more difficult to be truly independent. IDs play a significant role in the board of directors, especially on matters requiring oversight of management or the demand for independence relative to management. Thus, certain board committees such as audit, risk management and governance are required to be chaired or have members made up of IDs. As pointed out by researches among US and European companies, there is value in the differences in points of view as they improve the way an organization functions.
The said Circular, therefore, is an exciting step toward further improving corporate governance in the Philippines as it aims to enhance the effectiveness of IDs and encourage the infusion of fresh ideas into the boards of directors.
However, about a month ago, the SEC released an advisory stating that "if there are no suitable replacements," the IDs may be reelected in 2017 until 2021, at which time the 10-year limit kicks in. This advisory practically does away with the two-year cooling-off period.
This action is a step back and appears contrary to the very objectives of the Circular. Firstly, the Circular has been around for more than four years and public corporations should have had enough time to consider its effects and plan for its implementation in 2017. Also, if the purpose is simply to provide relief in seeking "suitable candidates," a five-year period may seem too long, especially since directors of public companies are elected on an annual basis. If there really is a need to provide more time for companies to look for replacements, the SEC could have decided to simply defer the implementation of the cooling-off period for a year or two.
The advisory requires that "re-election in 2017 until 2021 shall be with prior written notice and justification to the Commission addressed to the Corporate Governance and Finance Department." We should look forward to a very interesting read.
Admittedly, though, the rules are still there and the term limit will still be implemented in the coming years. The option to delay the cooling-off period is but a small blot in the larger picture of corporate governance improvements spearheaded by both the SEC and the private sector. The SEC, for example, has been very active in promoting the Asean Corporate Governance Scorecard (ACGS) initiative and should be credited for influencing more and more public companies in adopting international best practices in this area. The ACGS has five governance categories and the area of Responsibilities of the Board is a unique feature for the Philippines. In the latest scorecard, this is where the highest increase in points was observed, but it is also where the highest potential source of improvements can come in.
The board of directors, as a collegial body, is responsible for making decisions in behalf of the company. The board must be organized in a manner that encourages independence, discussions and active participation to arrive at an informed decision. Thus, independent directors have critical and important functions to perform on the board—they have to be independent and yet collaborative. The more perceptive companies and independent directors recognize these qualities and should find merit in the Memorandum Circular.
Renan Piamonte, Partner, Audit & Assurance of P&A Grant Thornton. P&A Grant Thornton is one of the leading Audit, Tax, Advisory, and Outsourcing firm in the Philippines, with 20 Partners and over 700 staff members.
As published in The Manila Times dated 11 May 2016.


Kettle Traditional kitchens exude long-held values in terms of style, quality of materials and standards of manufacture coupled with good old-fashioned attentive service throughout. Hand painted solid timber doors benefit from robust construction using a blend of modern methods and time worn joinery techniques.
But don't be fooled by our apparent focus on the past – within our traditionally styled kitchens, the latest technologies, appliances, accessories and luxurious features abound.
Can't find what you want? See our handmade kitchens and cabinets from Williams & Sons.


Results oriented leader with a proven track record in achieving growth and profit objectives. Versed in all aspects of community and commercial bank operations and community leadership, with heavy emphasis in commercial credit. Skilled communicator at various levels. Active in community, civic and industry leadership. High level P&L and balance sheet responsibilities.


text:
Archives by date > 2008 > February > 5th
AFRL Funding Laser Effects Research
Feb 05, 2008 15:38 UTC
THEL/Skyguard concept
Detachment 8 of the US Air Force Research Laboratory at Kirtland Air Force Base, NM is funding research to better understand and predict "the effects of lasers on various threat targets." This is useful from a number of perspectives: ballistic missile defense, discussion of concepts like a laser-firing Mk15 Phalanx system or SkyGuard system to protect against rocket attacks such as the ones Israel experiences regularly, the use of modulated lasers to protect commercial aircraft, potential laser threats to civil targets, and more.
The specific contracts include:
Vector Buys UK MoD's DARA Helicopter Facilities
Vector Aerospace Corporation of Toronto, Canada has signed a definitive GBP 17 million (about $34 million) purchase and sale agreement with the British Secretary of State for Defence, through its that Vector Aerospace International Limited subsidiary. They will acquire the Defence Aviation and Repair Agency (DARA) Rotary Wing and Components businesses, adding its locations and workers to the firm's existing facilities in Canada, the United States and the United Kingdom. Vector's sites maintain various types of gas turbine engines, components and helicopter structures for commercial and military customers. According to the firm's release, their goal is to create "a European centre of excellence in helicopter maintenance."
Lynx repair, Iraq
The UK deal adds the helicopter repair facilities located at Fleetlands, Portsmouth, which performs maintenance, repair and overhaul support for Chinook (CH-47), Lynx and Sea King helicopters; and the helicopter component and repair facilities located at Almondbank that serve a wider variety of helicopter platforms and customers. The transaction is expected to be completed during the first quarter of 2008.
Vector's UK operation Sigma Aerospace, at Croydon, England, currently supports the RAF's C-130 Hercules tactical transport and VC10 aerial tanker fleets. UK MoD release | Vector release [PDF] | Minister's statement [PDF]


Move through life with vigorous spirit and enthusiasm. Move towards activities and experiences that you feel a great sense of élan. Notice what lights your soul on fire. Do those things more often. This awareness brings you closer to the essence of life in the moment. This is where all the power is. The power of right now. The power of the present moment. The #mersurmoment......Will you join me in this moment?
Mersur is that moment in the gap where all is as it should be, a feeling, an experience where sunrises trump sunsets and every thing you do is an adventure. Where will you go next?


This is a simple alpha edit of the Maxis messy hair. Pretty much the same as the default, just a shorter fringe. Brown only.
Updated June 2008 – Toddler and child age groups removed. Fully binned. Teen-Elder.
Okay, technically this isn't a skintone, it's just a face mask. Apply this mask to your adult male sims to make them look like young adults. It's not so obvious in the screenshot, but try it out in BodyShop and you'll see it does make a difference. Maxis skintones – all 4. You don't need this for females, because adults and teens use the same tone. Base game compatible and compressed to take up less file space.


Universal Waste Management works hard to be the best medical waste removal company at the best prices for hospital waste management. We offer monthly service agreements and standard rates without additional fees, all in an effort to keep your rates affordable.
A trustworthy and affordable alternative wasn't available in medical waste disposal until Universal Waste Management started serving Florida and Georgia. From every pickup and dropoff to final disposal, we want to be your biohazardous waste disposal partners.
Finding services that work for your business is what makes us different from competing biowaste removal companies. We work in concert with small and large medical facilities in Lakeland, FL, and throughout Florida and Georgia. Biomedical waste isn't the only thing Universal Waste Management can handle. We also dispose of electronic equipment.
Our friendly, trained employees will stop by your place of business and take your medical waste away. From there, these technicians will transport your waste to our facility, where everything will be disposed of properly.
Universal Waste Management offers medical waste removal to the states of Florida and Georgia. We take this service and all the rules and regulations about it seriously.
We provide secure medical waste receptacles you can keep at your business.
We have large (96 gallon) receptacles and small varieties (15 gallons) and medium sizes, too. Sharps containers are also available. Our selections include receptacles certified chemo waste and RCRA. Visit our products page to see for yourself. We are confident that these containers won't leak.
To learn more concerning our Lakeland, FL, medical waste disposal services, contact us.


used small jaw crushers for quarry stone on sale. small diesel jaw crusher, mini jaw crusher for sale, used stone crusher for sale Jaw crusher is a kind of hard stone breaker, broadly used to crush various stones in quarry, metallu. use quarry crusher sand making stone quarry.
Sep 18, 2016· rock and stone crushing repairs granite machine quarry; small mobile stone crusher for ... what is the price of stone crusher machine in india ... Read more. Quarry Stone Crusher Machine, Quarry Stone ... - Alibaba .
portable quarry stone crushers. Flotation Machine With the development of mining industry, investors present various requirements of the features of flotation machine. Now… more; Hammer Crusher ... Small Stone Crusher,Buy Quality Small Stone Crusher from ... Get More Info.
Small Quarry Equipment For Sale, Small Quarry . Alibaba offers 2,145 small quarry equipment for sale products. About 63% of these are crusher, 1% are other mining machines, and 1% are stone machinery.
stone crushers for quarry cenotezaci mx . china brand small portable quarry cone crusher exporter at . 2015 new type quarry stone jaw crusher impact crusher manual stone cone crusher exporter book on jaw crusher in india .mx such as portable primary jaw crusher,... click to chat now.
cost to set up small scale stone crusher quarry heavy equipment jaw crusher stone quarry business plan in india cost to set up small quarry stone crushers. Quarry Stone Crusher Machines - YouTube. Sep 18, 2017 · stonecrushermanufacturer quarry stone crushers machines are widely used in mining, smelting, building .
Quarry crusher stone We can also provide industrial crushing methods these types of ... stone crusher machine parts sand making stone quarry. ... Small Stone Crusher, Buy Various High Quality Small Stone Crusher Products ... Application: Mining,Quarry,Chemical Industry and Construction,.


When a woman reach their 20s to 30s, the risk of osteoporosis become more apparent. Unfortunately, not all women are keen on taking this test and before they knew it, it is too late.
Although osteoporosis can set in by the time a woman reached their 30s to menopause, there are instances that some women can experience bone mass loss at an early age.
A bone density test can determine the level of your bone mass through a dual-energy x-ray or DXA. The result will determine whether you have high or low bone density. Depending on the results, your doctor will recommend the right amount of calcium intake to increase bone density.
Breast cancer is one of the leading cause of death amongst women. But the good news is, early detection can help prevent this disease from spreading. Women are advised to have their breast checked clinically once they started their period and should do it regularly to detect any lumps on both breast and have it checked for proper treatment.
As for the mammogram, it should be done when a woman reached the age of 40, usually done right after the period where the breasts are tender. This could help detect abnormalities on your breasts such as mass or calcium deposit on your breast.
Cervical cancer is also one of top leading diseases that affects women. Like breast cancer, it can be prevented with early detection. A pap smear can help determine for signs and symptoms of cervical cancer and other abnormalities in your reproductive system.
This test should be done when you reached the age of 21. It would also be best to have yourself tested for PCOS. PCOS is another silent illness that can hit women. It can affect one's ability to conceive. Once detected, your gynecologist will determine the best stretch mark removal dubai to help treat this abnormality.
Aside from consulting with the best gynecologist in Dubai for PCOS, you may also need to go through some blood test to detect any blood-related illness. This is a basic exam that will check the levels of your blood sugar, cholesterol and CBC and WBC. This test can help determine diseases like diabetes, high blood pressure and anemia.
Buying Or Renting Office Space – Which One Will Work For You?


We understand that you may sometimes not be happy about the service you receive, or you may wish to give some positive feedback.
a. Contact the Business Manager in the first instance with the complaint.
b. If you are not satisfied with the Managers response, contact the Manager of the Service.


text:
How to License Music in 5 Steps
As an independent musician and home producer, it's important that you license your music to protect your intellectual property. It's also a great way to create a passive income stream and make money off your talent. Here's how to license music through sync licensing.
What is a music license?
Also called a synchronisation license, this is a license that allows other people to use your music in a visual medium for a fee. They could use it in an advertisement, film, TV show, YouTube video, or video game, and you'd get paid for allowing them to do so. A music license usually gives someone the right to use your music for a set period of time, and you can even restrict how the music is used in some cases. You get two main types of synch licenses:
Exclusive – This is when you give one party the right to use your song. They're the only one's allowed to use it, so both you and the party you signed the deal with cannot let other parties use it.
Non-exclusive – Here, an unlimited number of parties can use your music. All parties have to agree to the terms, and it only works where there are no parties that want exclusive use.
The great thing about licensing your music is that you retain the rights to your songs. When it's done right, your music is still yours, even if you sign an exclusive deal.
Earnings from licensing your music depend on a huge range of factors. The most important to consider are:
How big the project is – For example, a small-budget local film will usually pay much less than a Hollywood blockbuster.
The scope of the project – If your song or music is used in a TV show that runs for years you will earn much more than you would for a once-off, short-term show.
The type of deal – Depending on how many parties want to use your music, you may earn more from a non-exclusive deal than an exclusive deal.
How the song is used – The more prominent the song or music is in the project, the more you will earn.
How many people created the song – The more people involved in the creation of the song, the more ways the fee must be split.
Licensing music in the UK
So, you're ready to get your music out there and earn some money – what should you do?
Step 1: Approach music licensing companies
In the UK, there are two bodies responsible for licensing music. PRS For Music collects fees for around 150,000 songwriters, composers, and publishers, while PPL represents over 120,000 record labels, musicians, and performers. You can join either of these companies for a fee and they will store your music in a library that film makers, videogame makers, and others use to source music for their projects. They will also ensure that you get your royalties and that your music earns royalties if it is used in shops and small businesses too. If your music gets selected, you'll be sent a license or quote request for you to sign off on. When it gets used in any media, you'll be paid a synch fee (also called an advanced fees) and royalties.
Step 2: Network with Music Supervisors
These are the people who source and select music for TV shows, commercials, movies, and videogames. Most music supervisors will go straight to music licensing companies, but you can also network with them directly. You'll need to use any industry connections you have to chat to their assistants and get into a position where they are willing and able to hear your music. If your music is selected and used, you'll get paid according to whatever agreement you sign with them. Because project budgets are highly variable, let them pitch you a fee rather than going in with one in mind.
Step 3: Get in touch with independent and local filmmakers
Big budget films are very difficult to get into, but at the same time, local and indie filmmakers often struggle to find artists and music for their projects. This is a great way for the two industries to work together to help each other grow. Whether it's a small local film, a passion project, or new filmmakers looking to break into the scene, you can get your music out there by selling a license to your existing music or even creating custom music for their project.
Step 4: Get represented by a synch licensing agent
This is a bit like an agent for actors, but they're there to pitch your music rather than pitching a person. They usually have great connections with music supervisors, indie film groups, advertising agencies, and other professionals who look for music on a regular basis, and they can save you a lot of time by approaching them directly when they think a project is perfect for your talents. Usually, they'll be paid a percentage of your fee or a set fee, and you get the rest.
Step 5: DIY
Of course, this is the age of DIY and, thanks to the internet, it's possible to license your own music. While it's an easy process to set up, it's difficult to get the traction that a synch licensing agent or music licensing company has. The best thing to do is to set up your official website and make your tracks available for listening on the site. Then, have a contact form so that music supervisors, filmmakers, and other people can get in touch with you about using your music. You'll also have to draw up contracts, negotiate your fee, and manage your music yourself.
How to get your songs ready to earn
For you to make money by licensing your music, you have to be able to offer tracks that are exceptionally high quality. Anything less than a professionally produced track just won't be able to compete with what's out there and won't be usable in the project either. Even for home producers, it's worth it to book studio time and lay down a high-quality version of your track.
A great studio is not only soundproof and designed to capture your acoustics perfectly, but also provides specialist expertise in the form of sound engineers and producers working on professional recording and mixing equipment.
At Kore Studios in London, we're all about the music – and that means creating a space where great music can be made. With comfortable studios that are fully equipped (including a 32 channel API console) and professionally soundproofed as well as a team of talented sound engineers and producers, we'll help you hone your sound so that it's ready for use in productions. We've worked with Amy Winehouse, Kasabian, Ellie Goulding, and White Lies – and we're ready to work with you. Chat to us today about our rates and services.