text:
package org.apache.hadoop.hive.serde2.objectinspector;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import junit.framework.TestCase;

import org.apache.hadoop.hive.common.type.HiveChar;
import org.apache.hadoop.hive.common.type.HiveVarchar;
import org.apache.hadoop.hive.serde2.SerDeUtils;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.HiveCharWritable;
import org.apache.hadoop.hive.serde2.io.HiveVarcharWritable;
import org.apache.hadoop.hive.serde2.io.ShortWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector.Category;
import org.apache.hadoop.hive.serde2.objectinspector.StandardUnionObjectInspector.StandardUnion;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorUtils;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
import org.apache.hadoop.hive.serde2.typeinfo.UnionTypeInfo;
import org.apache.hadoop.io.BooleanWritable;
import org.apache.hadoop.io.BytesWritable;
import org.apache.hadoop.io.FloatWritable;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;

/**
 * TestStandardObjectInspectors.
 *
 */
public class TestStandardObjectInspectors extends TestCase {

  void doTestStandardPrimitiveObjectInspector(Class<?> writableClass,
      Class<?> javaClass) throws Throwable {
    try {
      PrimitiveObjectInspector oi1 = PrimitiveObjectInspectorFactory
          .getPrimitiveWritableObjectInspector(PrimitiveObjectInspectorUtils
          .getTypeEntryFromPrimitiveWritableClass(writableClass).primitiveCategory);
      PrimitiveObjectInspector oi2 = PrimitiveObjectInspectorFactory
          .getPrimitiveWritableObjectInspector(PrimitiveObjectInspectorUtils
          .getTypeEntryFromPrimitiveWritableClass(writableClass).primitiveCategory);
      assertEquals(oi1, oi2);
      assertEquals(Category.PRIMITIVE, oi1.getCategory());
      assertEquals(writableClass, oi1.getPrimitiveWritableClass());
      assertEquals(javaClass, oi1.getJavaPrimitiveClass());
      // Cannot create NullWritable instances
      if (!NullWritable.class.equals(writableClass)) {
        assertEquals(writableClass, oi1.getPrimitiveWritableObject(
            writableClass.newInstance()).getClass());
        assertEquals(javaClass, oi1.getPrimitiveJavaObject(
            writableClass.newInstance()).getClass());
      }
      assertEquals(PrimitiveObjectInspectorUtils
          .getTypeNameFromPrimitiveWritable(writableClass), oi1.getTypeName());
    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }
  }

  public void testStandardPrimitiveObjectInspector() throws Throwable {
    try {
      doTestStandardPrimitiveObjectInspector(NullWritable.class, Void.class);
      doTestStandardPrimitiveObjectInspector(BooleanWritable.class,
          Boolean.class);
      doTestStandardPrimitiveObjectInspector(ByteWritable.class, Byte.class);
      doTestStandardPrimitiveObjectInspector(ShortWritable.class, Short.class);
      doTestStandardPrimitiveObjectInspector(IntWritable.class, Integer.class);
      doTestStandardPrimitiveObjectInspector(LongWritable.class, Long.class);
      doTestStandardPrimitiveObjectInspector(FloatWritable.class, Float.class);
      doTestStandardPrimitiveObjectInspector(DoubleWritable.class, Double.class);
      doTestStandardPrimitiveObjectInspector(Text.class, String.class);
      doTestStandardPrimitiveObjectInspector(BytesWritable.class, byte[].class);
      doTestStandardPrimitiveObjectInspector(TimestampWritable.class, Timestamp.class);
    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }
  }

  void doTestJavaPrimitiveObjectInspector(Class<?> writableClass,
      Class<?> javaClass, Object javaObject) throws Throwable {
    try {
      PrimitiveObjectInspector oi1 = PrimitiveObjectInspectorFactory
          .getPrimitiveJavaObjectInspector(PrimitiveObjectInspectorUtils
          .getTypeEntryFromPrimitiveJavaClass(javaClass).primitiveCategory);
      PrimitiveObjectInspector oi2 = PrimitiveObjectInspectorFactory
          .getPrimitiveJavaObjectInspector(PrimitiveObjectInspectorUtils
          .getTypeEntryFromPrimitiveJavaClass(javaClass).primitiveCategory);
      assertEquals(oi1, oi2);
      assertEquals(Category.PRIMITIVE, oi1.getCategory());
      assertEquals(javaClass, oi1.getJavaPrimitiveClass());
      assertEquals(writableClass, oi1.getPrimitiveWritableClass());
      if (javaObject != null) {
        assertEquals(javaClass, oi1.getPrimitiveJavaObject(javaObject)
            .getClass());
        assertEquals(writableClass, oi1.getPrimitiveWritableObject(javaObject)
            .getClass());
      }

      if (javaClass == HiveVarchar.class) {
        assertEquals("varchar(65535)", oi1.getTypeName());
      } else if (javaClass == HiveChar.class) {
        assertEquals("char(255)", oi1.getTypeName());
      } else {
        assertEquals(PrimitiveObjectInspectorUtils
          .getTypeNameFromPrimitiveJava(javaClass), oi1.getTypeName());
      }
    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }
  }

  public void testJavaPrimitiveObjectInspector() throws Throwable {
    try {
      doTestJavaPrimitiveObjectInspector(NullWritable.class, Void.class, null);
      doTestJavaPrimitiveObjectInspector(BooleanWritable.class, Boolean.class,
          true);
      doTestJavaPrimitiveObjectInspector(ByteWritable.class, Byte.class,
          (byte) 1);
      doTestJavaPrimitiveObjectInspector(ShortWritable.class, Short.class,
          (short) 1);
      doTestJavaPrimitiveObjectInspector(IntWritable.class, Integer.class, 1);
      doTestJavaPrimitiveObjectInspector(LongWritable.class, Long.class,
          (long) 1);
      doTestJavaPrimitiveObjectInspector(FloatWritable.class, Float.class,
          (float) 1);
      doTestJavaPrimitiveObjectInspector(DoubleWritable.class, Double.class,
          (double) 1);
      doTestJavaPrimitiveObjectInspector(Text.class, String.class, "a");
      doTestJavaPrimitiveObjectInspector(HiveVarcharWritable.class, HiveVarchar.class, "a");
      doTestJavaPrimitiveObjectInspector(HiveCharWritable.class, HiveChar.class, "a");
      doTestJavaPrimitiveObjectInspector(BytesWritable.class, byte[].class, new byte[]{'3'});

    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }
  }

  public void testStandardListObjectInspector() throws Throwable {
    try {
      StandardListObjectInspector loi1 = ObjectInspectorFactory
          .getStandardListObjectInspector(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
      StandardListObjectInspector loi2 = ObjectInspectorFactory
          .getStandardListObjectInspector(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
      assertEquals(loi1, loi2);

      // metadata
      assertEquals(Category.LIST, loi1.getCategory());
      assertEquals(PrimitiveObjectInspectorFactory.javaIntObjectInspector, loi1
          .getListElementObjectInspector());

      // null
      assertNull("loi1.getList(null) should be null.", loi1.getList(null));
      assertEquals("loi1.getListLength(null) should be -1.", loi1
          .getListLength(null), -1);
      assertNull("loi1.getListElement(null, 0) should be null", loi1
          .getListElement(null, 0));
      assertNull("loi1.getListElement(null, 100) should be null", loi1
          .getListElement(null, 100));

      // ArrayList
      ArrayList<Integer> list = new ArrayList<Integer>();
      list.add(0);
      list.add(1);
      list.add(2);
      list.add(3);
      assertEquals(4, loi1.getList(list).size());
      assertEquals(4, loi1.getListLength(list));
      assertEquals(0, loi1.getListElement(list, 0));
      assertEquals(3, loi1.getListElement(list, 3));
      assertNull(loi1.getListElement(list, -1));
      assertNull(loi1.getListElement(list, 4));

      // Settable
      Object list4 = loi1.create(4);
      loi1.set(list4, 0, 0);
      loi1.set(list4, 1, 1);
      loi1.set(list4, 2, 2);
      loi1.set(list4, 3, 3);
      assertEquals(list, list4);

      loi1.resize(list4, 5);
      loi1.set(list4, 4, 4);
      loi1.resize(list4, 4);
      assertEquals(list, list4);

    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }

  }

  public void testStandardMapObjectInspector() throws Throwable {
    try {
      StandardMapObjectInspector moi1 = ObjectInspectorFactory
          .getStandardMapObjectInspector(
          PrimitiveObjectInspectorFactory.javaStringObjectInspector,
          PrimitiveObjectInspectorFactory.javaIntObjectInspector);
      StandardMapObjectInspector moi2 = ObjectInspectorFactory
          .getStandardMapObjectInspector(
          PrimitiveObjectInspectorFactory.javaStringObjectInspector,
          PrimitiveObjectInspectorFactory.javaIntObjectInspector);
      assertEquals(moi1, moi2);

      // metadata
      assertEquals(Category.MAP, moi1.getCategory());
      assertEquals(moi1.getMapKeyObjectInspector(),
          PrimitiveObjectInspectorFactory.javaStringObjectInspector);
      assertEquals(moi2.getMapValueObjectInspector(),
          PrimitiveObjectInspectorFactory.javaIntObjectInspector);

      // null
      assertNull(moi1.getMap(null));
      assertNull(moi1.getMapValueElement(null, null));
      assertNull(moi1.getMapValueElement(null, "nokey"));
      assertEquals(-1, moi1.getMapSize(null));
      assertEquals("map<"
          + PrimitiveObjectInspectorFactory.javaStringObjectInspector
          .getTypeName()
          + ","
          + PrimitiveObjectInspectorFactory.javaIntObjectInspector
          .getTypeName() + ">", moi1.getTypeName());

      // HashMap
      HashMap<String, Integer> map = new HashMap<String, Integer>();
      map.put("one", 1);
      map.put("two", 2);
      map.put("three", 3);
      assertEquals(map, moi1.getMap(map));
      assertEquals(3, moi1.getMapSize(map));
      assertEquals(1, moi1.getMapValueElement(map, "one"));
      assertEquals(2, moi1.getMapValueElement(map, "two"));
      assertEquals(3, moi1.getMapValueElement(map, "three"));
      assertNull(moi1.getMapValueElement(map, null));
      assertNull(moi1.getMapValueElement(map, "null"));

      // Settable
      Object map3 = moi1.create();
      moi1.put(map3, "one", 1);
      moi1.put(map3, "two", 2);
      moi1.put(map3, "three", 3);
      assertEquals(map, map3);
      moi1.clear(map3);
      assertEquals(0, moi1.getMapSize(map3));

    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }

  }

  @SuppressWarnings("unchecked")
  public void testStandardStructObjectInspector() throws Throwable {
    try {
      // Test StandardObjectInspector both with field comments and without
      doStandardObjectInspectorTest(true);
      doStandardObjectInspectorTest(false);
    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }

  }

  private void doStandardObjectInspectorTest(boolean testComments) {
    ArrayList<String> fieldNames = new ArrayList<String>();
    fieldNames.add("firstInteger");
    fieldNames.add("secondString");
    fieldNames.add("thirdBoolean");
    ArrayList<ObjectInspector> fieldObjectInspectors = new ArrayList<ObjectInspector>();
    fieldObjectInspectors
        .add(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
    fieldObjectInspectors
        .add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
    fieldObjectInspectors
        .add(PrimitiveObjectInspectorFactory.javaBooleanObjectInspector);
    ArrayList<String> fieldComments = new ArrayList<String>(3);
    if(testComments) {
      fieldComments.add("firstInteger comment");
      fieldComments.add("secondString comment");
      fieldComments.add("thirdBoolean comment");
    } else { // should have null for non-specified comments
      for(int i = 0; i < 3; i++) {
        fieldComments.add(null);
    }
    }

    StandardStructObjectInspector soi1 = testComments ?
        ObjectInspectorFactory
        .getStandardStructObjectInspector(fieldNames, fieldObjectInspectors,
            fieldComments)
      : ObjectInspectorFactory
        .getStandardStructObjectInspector(fieldNames, fieldObjectInspectors);
    StandardStructObjectInspector soi2 = testComments ?
        ObjectInspectorFactory
        .getStandardStructObjectInspector((ArrayList<String>) fieldNames
        .clone(), (ArrayList<ObjectInspector>) fieldObjectInspectors
        .clone(), (ArrayList<String>)fieldComments.clone())
        : ObjectInspectorFactory
        .getStandardStructObjectInspector((ArrayList<String>) fieldNames
        .clone(), (ArrayList<ObjectInspector>) fieldObjectInspectors
        .clone());
    assertEquals(soi1, soi2);

    // metadata
    assertEquals(Category.STRUCT, soi1.getCategory());
    List<? extends StructField> fields = soi1.getAllStructFieldRefs();
    assertEquals(3, fields.size());
    for (int i = 0; i < 3; i++) {
      assertEquals(fieldNames.get(i).toLowerCase(), fields.get(i)
          .getFieldName());
      assertEquals(fieldObjectInspectors.get(i), fields.get(i)
          .getFieldObjectInspector());
      assertEquals(fieldComments.get(i), fields.get(i).getFieldComment());
    }
    assertEquals(fields.get(1), soi1.getStructFieldRef("secondString"));
    StringBuilder structTypeName = new StringBuilder();
    structTypeName.append("struct<");
    for (int i = 0; i < fields.size(); i++) {
      if (i > 0) {
        structTypeName.append(",");
      }
      structTypeName.append(fields.get(i).getFieldName());
      structTypeName.append(":");
      structTypeName.append(fields.get(i).getFieldObjectInspector()
          .getTypeName());
    }
    structTypeName.append(">");
    assertEquals(structTypeName.toString(), soi1.getTypeName());

    // null
    assertNull(soi1.getStructFieldData(null, fields.get(0)));
    assertNull(soi1.getStructFieldData(null, fields.get(1)));
    assertNull(soi1.getStructFieldData(null, fields.get(2)));
    assertNull(soi1.getStructFieldsDataAsList(null));

    // HashStruct
    ArrayList<Object> struct = new ArrayList<Object>(3);
    struct.add(1);
    struct.add("two");
    struct.add(true);

    assertEquals(1, soi1.getStructFieldData(struct, fields.get(0)));
    assertEquals("two", soi1.getStructFieldData(struct, fields.get(1)));
    assertEquals(true, soi1.getStructFieldData(struct, fields.get(2)));

    // Settable
    Object struct3 = soi1.create();
    System.out.println(struct3);
    soi1.setStructFieldData(struct3, fields.get(0), 1);
    soi1.setStructFieldData(struct3, fields.get(1), "two");
    soi1.setStructFieldData(struct3, fields.get(2), true);
    assertEquals(struct, struct3);
  }

  @SuppressWarnings("unchecked")
  public void testStandardUnionObjectInspector() throws Throwable {
    try {
      ArrayList<ObjectInspector> objectInspectors = new ArrayList<ObjectInspector>();
      // add primitive types
      objectInspectors
          .add(PrimitiveObjectInspectorFactory.javaIntObjectInspector);
      objectInspectors
          .add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
      objectInspectors
          .add(PrimitiveObjectInspectorFactory.javaBooleanObjectInspector);

      // add a list
      objectInspectors
          .add(ObjectInspectorFactory
          .getStandardListObjectInspector(PrimitiveObjectInspectorFactory.javaIntObjectInspector));

      // add a map
      objectInspectors
          .add(ObjectInspectorFactory
          .getStandardMapObjectInspector(
          PrimitiveObjectInspectorFactory.javaIntObjectInspector,
          PrimitiveObjectInspectorFactory.javaStringObjectInspector));

      // add a struct
      List<String> fieldNames = new ArrayList<String>();
      fieldNames.add("myDouble");
      fieldNames.add("myLong");
      ArrayList<ObjectInspector> fieldObjectInspectors = new ArrayList<ObjectInspector>();
      fieldObjectInspectors
          .add(PrimitiveObjectInspectorFactory.javaDoubleObjectInspector);
      fieldObjectInspectors
          .add(PrimitiveObjectInspectorFactory.javaLongObjectInspector);
      objectInspectors
          .add(ObjectInspectorFactory
          .getStandardStructObjectInspector(fieldNames, fieldObjectInspectors));

      StandardUnionObjectInspector uoi1 = ObjectInspectorFactory
          .getStandardUnionObjectInspector(objectInspectors);
      StandardUnionObjectInspector uoi2 = ObjectInspectorFactory
          .getStandardUnionObjectInspector(
          (ArrayList<ObjectInspector>) objectInspectors.clone());
      assertEquals(uoi1, uoi2);
      assertEquals(ObjectInspectorUtils.getObjectInspectorName(uoi1),
          ObjectInspectorUtils.getObjectInspectorName(uoi2));
      assertTrue(ObjectInspectorUtils.compareTypes(uoi1, uoi2));
      // compareSupported returns false because Union can contain
      // an object of Map
      assertFalse(ObjectInspectorUtils.compareSupported(uoi1));

      // construct unionObjectInspector without Map field.
      ArrayList<ObjectInspector> ois =
          (ArrayList<ObjectInspector>) objectInspectors.clone();
      ois.set(4, PrimitiveObjectInspectorFactory.javaIntObjectInspector);
      assertTrue(ObjectInspectorUtils.compareSupported(ObjectInspectorFactory
          .getStandardUnionObjectInspector(ois)));

      // metadata
      assertEquals(Category.UNION, uoi1.getCategory());
      List<? extends ObjectInspector> uois = uoi1.getObjectInspectors();
      assertEquals(6, uois.size());
      for (int i = 0; i < 6; i++) {
        assertEquals(objectInspectors.get(i), uois.get(i));
      }
      StringBuilder unionTypeName = new StringBuilder();
      unionTypeName.append("uniontype<");
      for (int i = 0; i < uois.size(); i++) {
        if (i > 0) {
          unionTypeName.append(",");
        }
        unionTypeName.append(uois.get(i).getTypeName());
      }
      unionTypeName.append(">");
      assertEquals(unionTypeName.toString(), uoi1.getTypeName());
      // TypeInfo
      TypeInfo typeInfo1 = TypeInfoUtils.getTypeInfoFromObjectInspector(uoi1);
      assertEquals(Category.UNION, typeInfo1.getCategory());
      assertEquals(UnionTypeInfo.class.getName(), typeInfo1.getClass().getName());
      assertEquals(typeInfo1.getTypeName(), uoi1.getTypeName());
      assertEquals(typeInfo1,
          TypeInfoUtils.getTypeInfoFromTypeString(uoi1.getTypeName()));
      TypeInfo typeInfo2 = TypeInfoUtils.getTypeInfoFromObjectInspector(uoi2);
      assertEquals(typeInfo1, typeInfo2);
      assertEquals(TypeInfoUtils.
          getStandardJavaObjectInspectorFromTypeInfo(typeInfo1), TypeInfoUtils.
          getStandardJavaObjectInspectorFromTypeInfo(typeInfo2));
      assertEquals(TypeInfoUtils.
          getStandardWritableObjectInspectorFromTypeInfo(typeInfo1),
          TypeInfoUtils.getStandardWritableObjectInspectorFromTypeInfo(
          typeInfo2));

      // null
      assertNull(uoi1.getField(null));
      assertEquals(-1, uoi1.getTag(null));

      // Union
      UnionObject union = new StandardUnion((byte) 0, 1);
      assertEquals(0, uoi1.getTag(union));
      assertEquals(1, uoi1.getField(union));
      assertEquals("{0:1}", SerDeUtils.getJSONString(union, uoi1));
      assertEquals(0, ObjectInspectorUtils.compare(union, uoi1,
          new StandardUnion((byte) 0, 1), uoi2));
      assertTrue(ObjectInspectorUtils.copyToStandardObject(
          union, uoi1).equals(1));

      union = new StandardUnion((byte) 1, "two");
      assertEquals(1, uoi1.getTag(union));
      assertEquals("two", uoi1.getField(union));
      assertEquals("{1:\"two\"}", SerDeUtils.getJSONString(union, uoi1));
      assertEquals(0, ObjectInspectorUtils.compare(union, uoi1,
          new StandardUnion((byte) 1, "two"), uoi2));
      assertTrue(ObjectInspectorUtils.copyToStandardObject(
          union, uoi1).equals("two"));

      union = new StandardUnion((byte) 2, true);
      assertEquals(2, uoi1.getTag(union));
      assertEquals(true, uoi1.getField(union));
      assertEquals("{2:true}", SerDeUtils.getJSONString(union, uoi1));
      assertEquals(0, ObjectInspectorUtils.compare(union, uoi1,
          new StandardUnion((byte) 2, true), uoi2));
      assertTrue(ObjectInspectorUtils.copyToStandardObject(
          union, uoi1).equals(true));

      ArrayList<Integer> iList = new ArrayList<Integer>();
      iList.add(4);
      iList.add(5);
      union = new StandardUnion((byte) 3, iList);
      assertEquals(3, uoi1.getTag(union));
      assertEquals(iList, uoi1.getField(union));
      assertEquals("{3:[4,5]}", SerDeUtils.getJSONString(union, uoi1));
      assertEquals(0, ObjectInspectorUtils.compare(union, uoi1,
          new StandardUnion((byte) 3, iList.clone()), uoi2));
      assertTrue(ObjectInspectorUtils.copyToStandardObject(
          union, uoi1).equals(iList));

      HashMap<Integer, String> map = new HashMap<Integer, String>();
      map.put(6, "six");
      map.put(7, "seven");
      map.put(8, "eight");
      union = new StandardUnion((byte) 4, map);
      assertEquals(4, uoi1.getTag(union));
      assertEquals(map, uoi1.getField(union));
      assertEquals("{4:{6:\"six\",7:\"seven\",8:\"eight\"}}",
          SerDeUtils.getJSONString(union, uoi1));
      Throwable th = null;
      try {
        ObjectInspectorUtils.compare(union, uoi1,
            new StandardUnion((byte) 4, map.clone()), uoi2, null);
      } catch (Throwable t) {
        th = t;
      }
      assertNotNull(th);
      assertEquals("Compare on map type not supported!", th.getMessage());
      assertTrue(ObjectInspectorUtils.copyToStandardObject(
          union, uoi1).equals(map));

      ArrayList<Object> struct = new ArrayList<Object>(2);
      struct.add(9.0);
      struct.add(10L);
      union = new StandardUnion((byte) 5, struct);
      assertEquals(5, uoi1.getTag(union));
      assertEquals(struct, uoi1.getField(union));
      assertEquals("{5:{\"mydouble\":9.0,\"mylong\":10}}",
          SerDeUtils.getJSONString(union, uoi1));
      assertEquals(0, ObjectInspectorUtils.compare(union, uoi1,
          new StandardUnion((byte) 5, struct.clone()), uoi2));
      assertTrue(ObjectInspectorUtils.copyToStandardObject(
          union, uoi1).equals(struct));

    } catch (Throwable e) {
      e.printStackTrace();
      throw e;
    }
  }

}


Nothing on the internet is as useful on a day to day basis as online payments. We encourage you to make full use of our electronic services and call us with any questions.
Copyright [copyright_date 2015] Dependable Storage. All Rights Reserved.


Ibanez SR1805-NTF Premium 5-strängad elbas Produktnr: 9000-0009-0422 Garantitid: Denna produkt levereras med 3 års garanti.
Ibanez's Sound Gear Premium series consists of bass guitars that have been constructed with the best and the most luxurious materials and that have an exceptionally beautiful finish. The SR1805-NTF is a five-string bass guitar with a body made of walnut and mahogany. The top of the body is made of rosewood and flamed maple, which gives this bass guitar that luxurious look. You can tell that the people at Ibanez take a guitar's finish very seriously as all of the fret endings have been rounded for a comfortable feel.
This Ibanez SR1805-NTF is equipped with large Nordstrand single-coil pickups. These pickups have that typical single-coil clarity but also deliver a full, powerful sound with an aggressive undertone. This aggressive character can be perfectly restrained by means of the EQBIIISC 3-band tone control and the preamps that have been designed specifically for the Nordstrand pickups. The tone control has a mid switch that allows you to choose between a frequency of 250 Hz or 600 Hz. Because this is the heart of the mid-frequency range, you have a large amount of options to create the sound you want.
The neck of this SR1805-NTF is also made of the best wood types with great sound characteristics and stability. This strong neck is made of three parts wenge and two parts bubinga wood and is connected to the body by means of a four-point system. Wenge provides clear mids and a quick response while bubinga contributes to clear mids as well but also produces a fat and well-defined low. This, in combination with the wood types of the body, guarantees a bass guitar with a modern, tight sound that has a firm low and bright mids.
Den här basen levereras med ett Ibanez fodral.
Obs: den detaljerade bilden visar den 4-strängade modellen.


The client came to us with a requirement of developing a multilingual site in WordPress.
We have developed this website in the WordPress platform. Our developers have used the WPML plugins to make the site multilingual. The PSDs, which were received from the client were converted to HTML. We haven't worked any of design elements creation. There is only up to 3 pages HTML work and after getting approval on the HTML work we have shared the same with a developer for the development work. The homepage has a jQuery slider which offered by the client.


text:
Home/World News/Middle East/Egypt/Attacks in Egypt's Sinai Kill 33 Officer
EgyptMiddle East
Attacks in Egypt's Sinai Kill 33 Officer
Two attacks in Egypt's Sinai Peninsula killed 33 security personnel on Friday, security sources said, in some of the worst anti-state violence since Islamist President Mohamed Mursi was overthrown last year.
The violence prompted Egypt to declare a three-month state of emergency in parts of North Sinai, where the violence took place, the state news agency reported.
The attacks are a setback for the government, which had managed over the past few months to make some progress in the struggle against an "Islamist" militant insurgency in the Sinai as it focuses on trying to repair the economy.
President Abdel Fattah al-Sisi has also expressed serious concerns over militants who are thriving in the chaos of post-Gaddafi Libya and are opposed to the Cairo government.
Egypt has offered to train anti-militant, pro-government Libyan forces while it tries to contain the Sinai insurgency.Security officials say Egyptian warplanes flown by Libyan pilots recently bombed militant targets in Libya.
Thirty people were killed in the first attack in the al-Kharouba area northwest of al-Arish, near the Gaza Strip, the sources said.Military helicopters transferred the dead and wounded to Cairo. Among them were several senior officers from the Second Field Army based in Ismailia, security sources said.
The car bomb attack targeted two armoured vehicles at a checkpoint near an army installation, the sources said.They said the big explosion and high death toll were likely due to the vehicles being loaded with ammunition and heavy weapons.
Security officials gave conflicting accounts of the first attack, with one Sinai-based official saying a rocket-propelled grenade was used. More than 25 people were wounded.
Hours later, gunmen opened fire on a checkpoint in al-Arish, killing three members of the security forces, officials said.The casualties were transported to Cairo by military helicopters, state news agency MENA reported.
There was no immediate claim of responsibility for either attack. Similar previous operations have been claimed by Egypt's most active militant group, Ansar Bayt al-Maqdis.
Though the vast peninsula has long been a security headache for Egypt and its neighbours, the removal of President Mursi of the Muslim Brotherhood brought the region new violence that has morphed into an "Islamist insurgency".
Security forces have been squaring off against militants who have killed hundreds of soldiers and police since the army toppled Mursi in July 2013 after mass protests against his rule.
Most attacks have been in Sinai, although militant groups have claimed responsibility over the past year for deadly bomb attacks on state installations in the Nile Delta and in Cairo.
The Brotherhood says it is peaceful and denies government claims it has links to the Sinai-based Islamist militants.
"COMBING OPERATION"
Sisi convened the National Defence Council on Friday evening for an emergency meeting in response to what his office called "a terrorist attack".Shortly after the second attack, Sinai residents reported that phone lines and Internet services had been cut.
Security sources said the communications shutdown coincided with the beginning of a military operation east of al-Arish in response to the attacks.Apache helicopters bombed areas south of the towns of Sheikh Zuwaid and Rafah, near the Gaza Strip, which sources said were believed to be "militant hideouts.
"MENA said armed forces were "conducting a large-scale combing operation" involving military helicopters and Special Forces troops, but gave no further details.
This is not the first time in the 16 months since Mursi's overthrow when news of a deadly attack against security forces in the Sinai has been swiftly followed by official announcements about a fresh assault on militants.
Washington provides Cairo with military aid of around $1.3 billion annually. A partial suspension of aid following Mursi's ouster was relaxed in April, when the U.S. said it would deliver 10 Apache helicopters, which have not yet arrived in Egypt.
The Pentagon said at the time that aid would help Egypt's counter-terrorism operations in the Sinai.
Six soldiers were killed on Sunday by a roadside bomb southwest of al-Arish. Security officials have expressed concern that ISIS militants who control parts of Iraq and Syria have forged ties with radical Islamist groups in Egypt.
Enemy of Islam Nigerian forces kill Sheikh Zakzaky supporter in Abuja
Rouhani: US pressure, plots against Iran, Venezuela crimes against humanity
100 militants found executed by al-Qaeda in Syria
God willing, we will pray in Quds
Anniversary of Imam Khomeini's Return to Iran

redpajama_set_name: RedPajamaCommonCrawl


Thinking about a federal job?
The federal government is the nation's largest employer with over two million employees. Positions with federal agencies can be found across the country, overseas, and in countless career fields. A career in federal government can be a good option for students who want to make a significant impact on others and care about good governance.
The federal government has a specific Internship Program that is run through their Pathways Program. These internships offer paid opportunities to work in federal agencies while still in school. Upon successful completion of an internship, participants may be eligible for conversion to full-time federal employment. These opportunities will be posted in USAJOBS.gov. Other internship positions (unpaid and paid) and student-related opportunities will be posted on individual agency websites. There is no comprehensive database of internship postings.
Job seekers should search USAJOBS.gov and individual agency websites for federal government jobs. USAJOBs.gov is the best place to go for general searches as it has over 30,000 job vacancy announcements from all federal government agencies. Some excepted service agencies, like those in intelligence or Foreign Service require applications through their individual sites. On USAJOBS.gov, the Students and Recent Graduates section does a great job of focusing on entry level postings. From this section, job seekers can then use the keyword or advanced search tools to narrow down options.
Federal resumes require more detail than a traditional one-page resume and often end up being two to five pages long for entry level positions. Federal resumes should include all relevant details about past accomplishments, course projects, work experience, and skills. They also need to include things like the number of hours worked per week and supervisor contact information. All of this information is extremely important for federal government hiring managers to determine the resumes that best fit the job vacancy requirements.
A typical application process in the federal government includes submitting a federal resume and other application materials such as an unofficial transcript, online questionnaire (that can be up to 100 questions long), and verification of veteran or disability status if applicable. After the application deadline, hiring managers forward along the best fit applicants to hiring managers who conduct interviews and begin the security clearance process for selected candidates. This all takes between two and six months and around one year for high security clearance positions. While there are government-wide hiring standards in place, each agency also has their own processes.
Every year, top federal government agencies come to campus to give information sessions, provide presentations or participate in class discussions, and recruit Illinois students for internships and full-time jobs. All recruitment opportunities and events will be posted on Handshake. Make sure to regularly check your Handshake account as well as set a search agent for government positions that are newly posted.
Additionally, The Career Center conducts multiple "Finding and Applying to Federal Government Opportunities" workshops each semester. Check out the workshop schedule for more information. These workshops can also be requested by a student group or class.


text:
Wake Forest Journal of Law & Policy
The Wake Forest Journal of Law & Policy is an interdisciplinary publication that explores the intersection of provocative legal issues with public and social policy. By examining salient topics, such as energy, economics, healthcare, and social justice, the Journal seeks to introduce and advance discourse consistent with Wake Forest's motto of Pro Humanitate.
2019 Fall Symposium
2012 Spring Colloquium
2017 Fall Colloquium
Melanie Johnson Raubach
Penelope "Penny" Orr Spry
William A. Darity
Volume 1:1
Volume 10:1
Masthead 2019-2020
Sua Sponte
After Milward v. Acuity Products
The Center for Progressive Reform (CPR)
Link to the Schedule
In Milward v. Acuity Products, 639 F.3d 11 (1st Cir. 2011), the First Circuit became the first court – either federal or state – to allow a "weight of the evidence" methodology for assessing causation in a toxic tort case. The plaintiff had alleged that exposure to defendant's benzene-containing products caused his rare leukemia (Acute Promyelocytic Leukemia ("APL")). His expert witness, a leading toxicologist and expert on benzene, surveyed five lines of scientific evidence from the peer-reviewed literature, and concluded the available evidence, taken as a whole, supported the inference that benzene exposure can cause APL. The lower court, following a common post-Daubert approach, excluded the testimony "because no one line of evidence supported a reliable inference of causation, [and] an inference of causation based on the totality of the evidence was unreliable." The First Circuit rejected this "atomistic" approach, noting that the district court did not have the authority to exclude evidence because reasonable experts may disagree about what it means.
This symposium will explore the implications of Milward for toxic tort litigation in the federal and state courts, including whether it correctly applies Daubert v. Merrell Dow Pharmaceuticals, Inc., 509, U.S. 579 (1993). The Symposium is tentatively scheduled for Wednesday, May 16, Thursday, May 17 or Friday, May 18, in Washington, D.C. Speakers are invited to comment on any aspect on Milwardthat they find interesting and important, including the following issues:
What role does the weight of the evidence methodology play in scientific risk assessment, and what are the implications of this role for tort litigation?
Should well-founded testimony based on a weight of the evidence methodology be admissible in toxic tort litigation? Does the Restatement of Torts (Third) §28 cmt. c concerning the role of scientific judgment in adjudicating general causation support the admissibility of such testimony?
Does the reliance of regulatory agencies, such as EPA, on a weight of the evidence methodology for purposes of regulating toxic chemicals support the result in Milward? Or are there differences in the legal and policy judgments being made by regulators and judges that distinguish regulatory agencies from courts?
What are the legal and policy implications of Milward for the future of toxic tort litigation?
The Wake Forest Journal of Law and Public Policy will publish the papers presented during the symposium in the Fall 2012. Papers will be submitted for publication around September 1, 2012. CPR thanks the Robert L. Habush Foundation for its support of the symposium.
De Novo Select Month January 2021 December 2020 October 2020 August 2020 May 2020 April 2020 March 2020 February 2020 November 2019 October 2019 March 2019 December 2018 October 2018 September 2018 July 2018 May 2018 March 2018 February 2018 November 2017 July 2017 March 2017 February 2017 November 2016 October 2016 April 2016
JLP on Twitter


Get points for great rewards just by supporting the Revs! Use the new York Revolution App to receive and earn points for ballpark food, store discounts, stadium tours, and more!
Download the York Revolution App today!


Remodelling any space within your home can be a daunting task. There is usually so much to do, and sometimes the entire project, regardless of size, might feel a bit overwhelming. However, you can reduce the stress involved in remodelling by following these two basic renovation tips.
When renovating any part of your home, it is imperative that you have a wish list. A wish list is simply a list of the things you would like to have in your newly renovated space. A wish list is important mainly because it will help you identify and prioritize the items that mean the most to you in this project. Once you prioritize these items, you are able to budget accordingly while ensuring that your dream renovation becomes a reality.
The wish list is also an efficient communication tool between you and your contractor. The professional will be able to see your vision for the space when looking at the wish list. The professional will also be able to determine which points to focus on first based on how you have prioritized the items on your wish list.
The only way to generate a good wish list is by doing a comprehensive research on the elements you wish to have. Go through remodelling magazines and websites, and if you find features you would like to incorporate in the renovation, add them to your wish list. In the end, you would have created a comprehensive list that covers nearly every dimension of how you want your new space to look like.
For instance, if you wish to incorporate ceramic tiles as part of the renovation, have a look at the different ceramic tile patterns available from different online magazines and remodelling websites. Once you see a pattern that you like, add it to the wish list.
Now that you have your wish list, it is time to start looking into where to buy the items noted down on the list. Remodelling your home will require you to make numerous trips to different showrooms in order to pick out the best items to use in the renovation process. For instance, you will need to visit a tile showroom in order to pick out the best tiles for the space you are renovating. You will have to do the same for other items that you are upgrading including faucets and other plumbing fixtures, cabinetry, vanities, and equipment.
This selection process is vital to the success of your entire project, and hence, you need to ensure you do everything you can to guarantee the right selection. One way to ensure this is by carrying along with you the blue prints of the space that you are renovating every time you visit the showroom.
The blue print needs to be dimensional so that accurate deductions are made on the right sizes of the items that you are looking for. With this blueprint, you and the sales associate will be able to pick out the best items at the right sizes. This will ensure that you do not incur additional costs taking the items back after purchase because they could not fit the space you were renovating.
The blueprint will also help the sales expert determine the right products to sell to you. The expert will be able to analyse the blueprint, and give you suggestions on the items that are most suitable for the space that is under renovation. This expert opinion will be crucial in helping you make the right selection in terms of tiles and other renovation items.
Following these tips will help make the renovation process much smoother for you, as well as more efficient. The wish list and the floor plan will ensure that the project remains in line with your tastes and preferences, as well as guarantee that you only pick the most suitable items for the space that you are renovating.


AKLAN - A young couple, who had just spent their honeymoon in Boracay, was detained at Caticlan Airport on Thursday after 15 bullets were found in their hand-carried luggage.
Rochelle Sulit and her husband, Jerome, were also allegedly asked to pay P80,000 so they can be released from detention.
The Sulits were on their way back to Manila when airport screeners found 14 live bullets and one empty shell inside Jerome's luggage at 11 a.m. They denied owning the ammunition.
Speaking to radio dzMM on Friday, Rochelle admitted that her husband's bag was not entirely zipped when it passed the x-ray machine because they thought the alleged bullet-planting scheme had been curbed.
"Hindi po masyadong naka-sarado so pwede siyang hulugan po. Panatag po iyung asawa ko na wala naman pong ganoong case dito kasi wala na po iyung issue ng tanim-bala," she said.
Sulit reiterated that they had no prior knowledge of the bullets, adding that they passed Ninoy Aquino International Airport (NAIA) and Caticlan Airport on their way to Boracay without any trouble.
She added that bringing bullets to their honeymoon would serve no purpose.
Sulit also claimed that Jerome's bag got stuck in the inspection machine for several minutes before airport personnel reported a suspicious object and instructed her husband to take it out.
She added that an airport screener had called higher-ups right away, even before she and her husband could insist that the bullets were not theirs.
"Nag-i-explain pa lang po kami, mayroon na pong tao doon na tumawag na sa taas kaya nalaman agad, imbes pong pinakinggan muna iyung eksplanasyon namin para maging okay din po lahat," she narrated.
Sulit claimed overhearing that the airport screener reported it immediately allegedly because the screener was after a promotion.
"Motibo raw po noon kaya nagsumbong agad kasi promotion daw po. Ganoon po ang dinig ko, na nagpapa-promote daw po iyung nagsumbong, nagpapalakas po," she said.
The newlyweds were later brought to the police station where they were allegedly asked to pay P80,000 for their release.
"Pagdating po sa presinto, [hinihingan] po kami ng P80,000 para lang po ma-release. E wala naman po kaming ganoong halaga. Pero iyung P80,000 po na iyun, may kaso pa ang asawa ko," she said.
Sulit said that as of 7 a.m. Friday, they remained detained at the police station, awaiting charges to be filed against her husband.
Unable to hold back tears, Sulit said they had not eaten since being arrested due to anxiety.
"Hindi nga po makakain dahil sa nangyayari na hindi po... Parang kapalit po yata ng kasiyahan namin, ito po," she said with her voice breaking.
The Public Attorney's Office (PAO), meanwhile, sent a lawyer to represent the Sulits and accompany them back to the airport.
PAO chief Persida Rueda-Acosta also slammed the Aklan police for detaining the couple for over 11 hours without filing a case against them, which she said is illegal.
Acosta also maintained that airport authorities should have just confiscated the bullets and allowed the Sulits to board their flight because there had been no apparent "animus possidendi" or intent to possess.
Last week, an elderly couple was also barred from boarding their California-bound flight and allegedly asked to give a bribe of P50,000 after NAIA personnel found a bullet in their hand-carried bag.
Salvacion Cortabista, 75, and her husband Esteban, 78, are set to file charges against the airport personnel allegedly involved in the extortion scheme.
The PAO, which is also handling their case, is only awaiting the testimony of their witness.
Acosta said the Cortabistas have also asked the Philippine National Police to conduct a parallel investigation into their case.


Over the duration of the calendar year, the student takes 8 distinct classes. Otherwise, you might be encouraging students to check your limits. In the event the students in a flipped classroom need to master topics in a particular sequence they could wind up working at various prices. When schools start to interview they will need to lower the invited people to a manageable number. What the teacher must police, nevertheless, is making sure all students promptly sit at their desks upon going into the classroom, and there are no stragglers that are tardy. Within this case flip teaching may not operate. With a bit of research, you can get the education which suits you best.
While there isn't anything wrong with a school operating for profit, there are many issues to think about prior to making a selection of which to attend. Whether you are now struggling with classroom management or would like to learn major teacher-caused student misbehaviors so as to prevent them, this list will be able to help you determine the causes of common teacher-caused student misbehaviors. Always remember that you're going through recruitment, and donat let anything stand in the method of meeting girls and making a great impression. Recruitment is a mutual selection procedure, and everyone should put her very best foot forwardacheerful confidence with humility is an excellent attitude to adopt. Generally speaking, universities and government agencies have a lot of credibility.
After the call is connected, you can speak to the individual employing a little microphone imbedded over the driver's head. Don't panic and get stressed our, even if you've got numerous subjects you're very weak in. The large number of applicants does not allow for you to get a poor grade as this is where schools cull first. You're able to have a look at a list of a number of the simplest elective classes that you're able to finish as quickly as possible here. When you examine the list of schools that you want to attend, make sure that you find the minimum GRE score required. The other websites aren't better, either. Inside this training you will get to understand and put on the Learnship teaching method and learn useful tips as soon as it comes to teaching online.
You may be surprised how much you're ready to do! Make certain you eat healthily. You need to be able to determine that for yourself. You've got a geo-social aesthetic. It's something which breaks you down. Everything sounded pretty great to me. It means lots of things.
Possessing specific days can help you stay focused on what you have to do. You've got zero need to truly feel sorry or apologize to me. 1 need only consider the fiasco that's Iraq, and comment on the comprehensive absence of foresight concerning the crucial elements to unite a nation divided by numerous warring factions. Another issue is that some students may not own a computer or Internet access at home. Part of the issue is its length. It is that they detract from the real picture. In addition, you need somebody who can let you know when something may be a poor idea.
Everyday saw a growing number of media reports on corruption in some portion of the world. It is not hard to get distracted to chat about other things in life. The story is only a myth kept alive by the essence of sensationalistic websites on the web. It is not new, either. As most of us have learned, everyone can write anything in a book or on the web. To begin with, choose what you wish to achieve with your paper. Any less is too weak and the thesis will be not able to stand alone.
If you donat have enough time to develop a creative title, be boring, but you should be true. If you can discover the moment. Somebody explained that a lengthy, long time past, and I said Fiddlesticks. A great point to do is to get specific days each week you will work on your classes instead of merely doing them at random, whenever you really feel like it. It's especially important during the first couple of weeks of each school year and it'll set the expectations and classroom behavior for the length of the year.
Just do the job, go to the lectures, and you will be fine. Assigning extra work, while it is additional reading or writing, is a conventional punishment, but it's also highly ineffective and, actually, detrimental. It is difficult to receive a job outside the distinctive area. Salaries are contingent on the selection of majors.


text:
Q: Как изменить значение во всех связанных таблицах Есть две таблицы groups и students,
groups
id | name  |
1  | BB-31 |
2  | BB-32 |
3  | PR-41 |

students
id | group |
1  | BB-31 |
2  | PR-41 |

На groups.name и students.group весит forgeign key. Как сделать что-бы при изменении данных в groups.name они же сразу менялись в students.group?

A: Очень неправильно вешать связь между таблицам на изменяемое поле вроде name. Обычно в каждую таблицу добавляют так называемый суррогатный ключ, то самое поле id типа INT NOT NULL AUTO_INCREMENT.
По меньшей мере это решение избавит вас от необходимости одновременного изменения полей в связанных таблицах.
Но, если такое изменение всё-таки нужно, используйте внешние ключи с опцией каскадного обновления.
Объявляя таблицу students, опишите внешний ключ:
CREATE TABLE students
(
    id INT NOT NULL AUTO_INCREMENT,
    `group` NOT NULL VARCHAR(100),
    PRIMARI KEY (id),
    FOREIGH KEY (`group`) REFERENCES groups (name) ON UPDATE CASCADE
);

Мы заключаем название поля group в обратные апострофы, потому что оно совпадает с началом ключевого слова GROUP BY.
Теперь, при изменении поля groups.name будет меняться поле students.group у всех студентов из данной группы.
Детали: https://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html

redpajama_set_name: RedPajamaStackExchange


Lots to get through on this week's Behind the Wheel. We'll take you driving in the highly-acclaimed Kia Stinger.
Acclaimed for good reason, it truly is an epic car. Pete and Chris go round the block in a frenetic but totally legal fashion.
We'll also hit the road in the all new Volvo XC60, a car that has already picked up a raft of awards.
Volvo really is hitting it's straps now with some truly beautiful new cars, the XC60 takes centre stage. We've got David Pickett, Technical Manager of Volvo Cars on the show to break down some of the more finer detail.
HSV are in business big time. They're one of the most exciting things happening in the Australian market right now.
With an influx of imported vehicles, HSV are weaving their magic and turning out some serious vehicles worthy of the iconic HSV badge.
Joel Helmes has been flitting across the country attending car launches left and right. We'll here about a new seven-seat Lexus SUV and a special edition Mazda MX-5.
Rach makes a welcome return and wants to talk about the stupidest car modifications on the road. Wait till you hear about the jacked up Commodore she spotted in Sydney!


text:
var assert = require('assert');
var parser = require('../lib/parser');

suite('parser')

test('should parse key/value line', function() {
    assert.deepEqual(parser.parse_line('KEY=value'), ['KEY', 'value']);
});

test('should ignore comments', function() {
    assert.deepEqual(parser.parse_line('# COMMENT=value'), null);
});

test('should ignore blank lines', function() {
    assert.deepEqual(parser.parse_line(''), null);
});

test('should handle empty values', function() {
    assert.deepEqual(parser.parse_line('KEY='), ['KEY', '']);
});

test('should strip away single quotes', function() {
    assert.deepEqual(parser.parse_line('KEY=\'value\''), ['KEY', 'value']);
});

test('should strip away double quotes', function() {
    assert.deepEqual(parser.parse_line('KEY="value"'), ['KEY', 'value']);
});

test('should expand newlines in double quotes', function() {
    // use \\n to avoid js converting the literal \n into a newline
    // when parsing an env file, we will actually encounter both characters \n
    assert.deepEqual(parser.parse_line('KEY="expand\\nnewlines"'), ['KEY', 'expand\nnewlines']);
});

test('should not expand newlines in single quotes', function() {
    // use \\n to avoid js converting the literal \n into a newline
    // when parsing an env file, we will actually encounter both characters \n
    assert.deepEqual(parser.parse_line('KEY=\'expand\\nnewlines\''), ['KEY', 'expand\\nnewlines']);
});

test('should not expand newlines with no quotes quotes', function() {
    // use \\n to avoid js converting the literal \n into a newline
    // when parsing an env file, we will actually encounter both characters \n
    assert.deepEqual(parser.parse_line('KEY=expand\\nnewlines'), ['KEY', 'expand\\nnewlines']);
});

test('should handle \\$ in values', function() {
    assert.deepEqual(parser.parse_line('KEY=\\$VALUE'), ['KEY', '\\$VALUE']);
});

test('should handle support = in values', function() {
    assert.deepEqual(parser.parse_line('KEY=='), ['KEY', '=']);
});

test('should retain inner quotes', function() {
    assert.deepEqual(parser.parse_line('KEY={"foo": "bar"}'), ['KEY', '{"foo": "bar"}']);
});

test('should retain inner quotes when single quoted', function() {
    assert.deepEqual(parser.parse_line('KEY=\'{"foo": "bar"}\''), ['KEY', '{"foo": "bar"}']);
});

test('should retain inner quotes when double quoted', function() {
    assert.deepEqual(parser.parse_line('KEY="{"foo": "bar"}"'), ['KEY', '{"foo": "bar"}']);
});

redpajama_set_name: RedPajamaGithub


text:
Science Fiction & Fantasy Meta
Science Fiction & Fantasy Stack Exchange is a question and answer site for science fiction and fantasy enthusiasts. It only takes a minute to sign up.
Which work of Scifi/fantasy was the first to depict a person as a hologram?
Star Wars has them. So do the Star Trek and Red Dwarf series. Which work of Scifi/fantasy, written or filmed, was the first to depict a person as a hologram?
history-of hologram
DVK-on-Ahch-To
Major StackingsMajor Stackings
First to have a holographic representation of someone, or the first to have a character who is a hologram?
– DJClayworth
@DJClayworth The first holographic representation of someone.
– Major Stackings
The earliest I can think of (though there are likely others) is Foundation, published in 1951. Hari Selden appears several times as a holographic recording, warning the populace of impending crises. However, I'm pretty sure the word hologram is actually used in the book, so the thing to figure out might be who coined the word and when.
Adele CAdele C
nature.com/physics/looking-back/gabor/index.html probably 1948 by a Dr. Gabor
– horatio
Nice work. That's a pretty short window, too...
– Adele C
First, I think you missed out a "not" in the last sentence; you meant to say the word hologram is not actually used. Second, Hari Seldon's first holographic recording (if that's what it was) was mentioned in Asimov's short story "Foundation" which was first published in the May 1942 issue of Astounding Science-Fiction.
Obviously, the benchmark to beat is 1974 when Star Trek: The Animated Series episode "The Practical Joker", introduced the holodeck.
From http://en.wikipedia.org/wiki/Holography#Holography_in_fiction:
The Carpathian Castle (1893 novel by Jules Verne) the plot revolves around prima donna La Stilla, represented at the times of the events as a projected image.
I'm not sure if that counts (it was a projection but not technically speaking a hologram) but will post in case you meant to include any projections and not just literally holograms.
If that doesn't count, Lem's "Return From The Stars" (1961) has "holographic 3-D photos, as well as holographic theater plays" according to TVTropes.
DVK-on-Ahch-ToDVK-on-Ahch-To
Holey moley. 80 seconds.
"80 seconds"? I'm not familiar with that novel. Was it published before 1961 and did it have holograms?
– DVK-on-Ahch-To
What about the Wizard of Oz (1939 for the movie, not sure if this was seen in the books)? Maybe not a hologram in the strictest definition, but the technique is pretty similar.
edited Jan 8 '14 at 1:16
Darrel HoffmanDarrel Hoffman
Thanks for contributing an answer to Science Fiction & Fantasy Stack Exchange!
Not the answer you're looking for? Browse other questions tagged history-of hologram or ask your own question.
January 2022 Topic Challenge: Walter M. Miller Jr
Favorite Question and Answers from Fourth Quarter 2021
Latest Blog Post: Orson Scott Card's The Last Shadow
What is the first reference to a hologram in science fiction?
What was the first appearance of Olympic gods as characters in modern SciFi or fantasy?
What work of SciFi or Fantasy was the first to depict small scale removable computer data storage media?
What was the first SciFi/Fantasy work to include intelligent beings evolved from Earth dinosaurs?
What is the first instance of advanced races becoming beings of light in scifi and fantasy?
What was the first SciFi work that referred to Pluto as NOT a planet?
Which Sci-Fi work was the first to depict "Multi-Alien Culture"?
Which Sci-Fi work introduced the concept of "AI Doctor"?
Science Fiction & Fantasy Stack Exchange works best with JavaScript enabled


The third stage of the Product Backlog contains all of the requirements which are formulated by the Product Owner Team. The requirements at this stage are not subjected to quality assurance .
Requirements described here are very approximate and not yet formulated or prioritized. All types of requirements are included. Requirements and changes (Change Requests) are collected in this stage.
After each Sprint, a Sprint Review Meeting takes place with the Team, the Scrum Master and the Product Owner Team. Results from this, which can be formulated as Items, also merge here. Each incorporated entry is given a unique number.
At this stage of the Product Backlog, it is not clear if any of the Items should be implemented.
Diagram 25 describes the structure of the third stage and the features of the Items included. In this example, the entry is simply a unique number and a brief description.
When the Product Owner Team shifts an Item into the next upper level, it equates into an assignment for the analysis team or the analyst; these are members of the Product Owner's team. The analysis team or the analyst is assigned the task to specify the Item in accordance with the defined quality criteria. This can be implemented as part of a Sprint Task or outside of the Scrum Process and depends on whether the analysis team and the analyst are part of the Development Team. It is important to ensure that the Team is informed early on about the requirements and can contribute.


At ICICI Bank, we believe in providing the best of services to our customers. We provide our customers with easy access to information on our products and services.
If at any stage you feel that our service levels are not upto your expectations please feel free to contact us. You may please complete and submit the Grievance form in writing to Bahrain Branch, Call us or Email us.
We will get back to you, within five working days of the receipt of your grievance. The Bank will resolve/respond to your Grievance within 4 weeks of the written acknowledgment.
Click here to read our Grievance Redressal process.
The copy of the Code of Best Practices is available on this website and may be obtained from the Branch Manager. It is also available on the site of the Central Bank of Bahrain.
ICICI Bank Limited's Bahrain Branch is Licensed and regulated as a conventional retail bank by the Central Bank of Bahrain, located at Manama Centre, Manama, P.O. Box-1494, Bahrain.


text:
A Guide to Portuguese Student Visas and Requirements
1 Who Needs a Portuguese Student Visa?
2 Types of Portuguese Student Visas and Permits
2.1 Schengen Short-stay Visa (less than 90 days)
2.2 Portuguese Student Visas and Residence Permits (Longer Than 90 days)
2.3 Portuguese Residence Permit for Researchers
3 Applying for a Portuguese study visa
4 Portuguese Student Visa Costs
5 Working in Portugal While You're a Student
6 Foreign Graduates in Portugal
7 Family Members of Foreign Students in Portugal
Who needs a Portuguese student visa? This guide explains Portuguese student visa requirements and how to apply for a Portuguese study visa.
If you plan to study in Portugal, you'll need to find out if you require a Portuguese student visa. Different rules apply to citizens from different countries.
This guide explains who needs a Portuguese student visa, the types of Portuguese study visas, how to apply for a student visa in Portugal and the costs. It also discusses the conditions for working in Portugal while you're a student, what you can do after you finish your studies in Portugal and the situation of bringing family members to Portugal as a foreign student.
Who Needs a Portuguese Student Visa?
Portugal's student visa rules are similar to those in several other EU countries. If you are coming to study in Portugal from a country from the EU/EFTA, you won't need a Portuguese student visa but you will have to obtain a certificate of residence from your local city council if you stay longer than three months. Read more about the conditions of the Portuguese immigration policy for EU citizens.
In contrast, non-EU nationals will need a Portuguese student visa if studying in Portugal for longer than three months, along with a residence permit. The Portuguese student visa will need to be obtained from the Portuguese embassy or consulate in the home country before travelling to Portugal. A residence permit will need to be applied for upon arriving in Portugal from the Portuguese Immigration and Borders Service (SEF).
For short study programmes lasting less than three months, residents of some non-EU countries don't need a visa. They can enter Portugal freely with just a passport valid for six months. A list of countries whose citizens do not need a visa for short stays in Portugal includes more than 30 countries, including Australia, Canada, New Zealand and the US.
MUST READ: Student Visas in South Africa- The Complete Guide
All other non-EU citizens will need to apply for a short-stay visa for study programmes lasting less than three months. More information on requirements is available in our article on Portuguese visas and permits.
Types of Portuguese Student Visas and Permits
Schengen Short-stay Visa (less than 90 days)
For non-EU citizens studying in Portugal on a short course or carrying out academic research lasting less than three months, and whose countries do not have an agreement with Portugal, will need to apply for a short stay (type C) visa in their home country before travelling to Portugal. Portugal is one of 26 Schengen countries and the Schengen visa allows you to travel to Portugal and any other Schengen country for a total of 90 days.
Portuguese Student Visas and Residence Permits (Longer Than 90 days)
If your studies in Portugal will last longer than 90 days, as a non-EU citizen you will have to apply for a long-term Portuguese student visa to enter Portugal (Schengen Visa type D, unless your country has an agreement) and subsequently pick up your residence permit at your office. Read more in our guide to visas for Portugal.
You need to apply for a Portuguese residence permit within three months of arriving in Portugal. This will be valid for one year. If your studies in Portugal last longer than one year, you can apply to the SEF to get your Portuguese student permit renewed. Portuguese resident permits are renewable for up to five years.
Portuguese Residence Permit for Researchers
Non-EU nationals coming to Portugal to engage in post-doctoral research activities for longer than three months can apply for a specific residence permit for this purpose. This will enable you to engage in paid research work or work that is deemed a highly qualified activity.
MUST READ: Urgent Farm Jobs In Canada With Free Visa Sponsorship 2022 - APPLY NOW!
Applying for a Portuguese study visa
You will need to apply for a Portuguese study visa with the Portuguese embassy or consulate in your home country. A list of Portuguese embassies around the world is available here.
To study in Portugal, you will also need to have gained prior acceptance onto a course at a Portuguese university or place of higher education. Read more in our guide to universities in Portugal.
For short-term (type C) visas of up to 90 days, you will need:
a valid passport/travel ID
proof of financial resources to support you during your stay
proof of accommodation (or at least proof of sufficient finances to cover accommodation costs)
two current passport-sized photos
medical/travel insurance
letter of acceptance from university or place of study
a bank receipt to prove payment of processing fee
some embassies/consulates may also request a criminal record certificate.
For residence permits if your study in Portugal lasts longer than 90 days, you will need to show:
valid passport/travel ID
two current passport photographs
valid visa (if required)
proof of financial resources
proof of accommodation
criminal record certificate
proof of enrolment at the place of study
proof of payment of tuition fees, where applicable
medical insurance.
After submitting your Portuguese student visa application, the approval process can take anywhere between one and three months to process, depending on which country you are applying from.
Portuguese Student Visa Costs
The Portuguese student visa cost is €60 for a short-stay visa and €99 for a long-stay visa. The application cost is reduced to €35 for nationals from Kosovo, Russia, Georgia, and Ukraine.
Working in Portugal While You're a Student
EU students can work in Portugal without requiring a work permit. Non-EU students on Portuguese student visas and residence permits are allowed to work in Portugal subject to authorisation from the SEF. You can also request permission to undertake research work, academic teaching or engage in highly qualified activities provided you have the necessary skills and qualifications.
MUST READ: Student Visa Guide: 10 Important Documents Needed To Process A Student Visa
There are also permits available for unpaid trainees and volunteers. If you want to volunteer or undertake an unpaid internship or training position, your employer will need to contact the SEF to enquire about getting the necessary permit.
Foreign Graduates in Portugal
Non-EU nationals who want to stay on after their Portuguese student visa expires will need to have an offer of suitable employment to extend their residence. Their permit will need to be changed to a residence permit for employed workers, research workers and highly qualified professionals, or self-employed workers (if you wish to start a business in Portugal). Read more in our guide to Portuguese work visas and permits.
You can also apply for the EU Blue Card which is available for highly qualified workers from non-EU/EFTA countries if they wish to work in the EU.
Family Members of Foreign Students in Portugal
Non-EU nationals holding a valid Portuguese student permit are entitled to be joined by spouses, minor or dependent children or those of your spouse, or any minor children that have been adopted. You will need to provide evidence of their relationship and they will have to apply for the necessary visas and permits. Read more in our guide to bringing a partner or relative to Portugal.
Portuguese Immigration and Borders Service (SEF): www.sef.pt
EU guide with information on studying in Portugal
Details of the Schengen Student Visa
List of Portuguese embassies worldwide
Find your local SEF office
List of useful application forms and documents
Applying For a Portuguese Spouse Visa
Portugal's Work Visas and Residence Permits
Portugal Immigration Guide: Visas and Residency Permits
Finding a Job in Portugal: A Job Seeker's Guide
How to Apply For UK Student Visa 2023 -
Student Visa Guide: 10 Important Documents Needed To Process…
Tags:Student VisaStudying in PortugalWork VisaWorking in Portugal
previousMillennium Scholarship – UWE Bristol
nextADNOC Latest Jobs Offshore Job Vacancies


Always keeping the consumer's perspective in mind to deliver true consumer satisfaction, we are committed to researching, developing, manufacturing and marketing safe, high-quality products and services. In particular, to ensure that our consumers feel at ease, quality and safety are far and beyond our top priority. Safety assurance is achieved through compliance with our own stringent standards, on top of laws and government regulations. Safety assurance of cosmetic products is described in this section.
We never rest in our efforts in research and development and in developing new ingredients to further meet the needs of consumers. Shiseido's products are formulated with ingredients that have clearly demonstrated safety with respect to the usage and the site of application. None of the ingredients have ever been commercialized without passing the safety assessments under Shiseido's safety assurance system.
The safety of new cosmetic ingredients is verified by evaluations of existing toxicological data and/or assessments in non-animal experimental systems.
In addition to making a careful selection of ingredients, Shiseido also makes sure the impurities in each ingredient are safe before use of the ingredient.
Scientists at Shiseido have access to the most up-to-date safety data and the state-of-the-art technologies, and work with outside experts to improve their safety evaluation skills.
We at Shiseido stand behind our products and our consumers 100%. In the event of any unexpected outcomes, we will promptly share all information and take appropriate measures. Every effort will be made to limit the impact on consumers, including making such information public when necessary.
A system has been instituted that promptly shares safety-related information with relevant persons within the company.
Shiseido will respond promptly and in good faith to any inquiries from consumers.
This section provides information on safety assurance items, safety assurance by alternative methods and final safety assurance by human testing under the Shiseido Safety Assurance System.


State Rep. Jason Brodeur wants public transportation agencies to seek proposals from private companies. The Sanford republican is working on legislation with the governor and House Speaker Steve Crisafulli.
Broduer points to Volusia County's Votran system run by a company out of Texas. He said Votran's been more efficient with its private sector management. Broduer now wants not only Orlando's Lynx system to look for private management, but all transit authorities to seek it out.
Lynx CEO John Lewis said Lynx already outsources its paratransit and express routes, but the board is against private management. "Just a blanket outsourcing of management of Lynx or transit companies, I'm just curious what benefit that would bring to central Florida and our riders," said Lewis.
Lewis said federal benchmarks show Lynx out-performs the transit system in Austin, Texas, which is run by a private company.


Gambling critique is conducted on the basis of several games provided by the gambling industry, the effectiveness of the diverse software used by gambling sites, the bonus offered, transaction practice, security and safety supplied by sites and many other aspects of gambling industry. Since there are numerous gambling sites each and every with attractive offers so individuals can easily get fascinated with them and decide on any online game without understanding the effect of it. Gambling critique works as being a guide and aids a person in choosing the proper game from the gambling websites.
A gambling overview distributed by the experienced people can be quite good for a newcomer because they point on every part of a online game. The sheer numbers of online gambling sites is definitely growing and more than TWENTY THREE hundred or so betting sites are functioning worldwide. Not only the regular participants surebett but in addition the new individuals are getting drawn with the offering of these sites every single day. It is not easy to opt for a betting website. So many sites generate confusion and one cannot choose the right website or online game for himself. In such situations a gaming evaluation assist a person to locate one or more than one gaming sites that can be reliable and meet all the requirements of the gamer. Gambling review gathers all the information right from the legalization of gaming sites in different regions to the actual winning offers provided by diverse websites.
Gambling critique additionally assists in comprehending the program given by the proprietors of the sites. One can get the list of those computer software providers which are recognized for the standard of their computer software. These software suppliers follow specific measures to offer continuous service and game titles for their customers. A few of the well known software providers are playteh, microgaming, RTG, vegas technologies and cryptoLogic. Gamers can play on all those gaming sites which use these types of programs.
Gambling review also points on customer service which can be bundled on the list of essential popular features of any gambling sites whether online or offline. There are lots of gambling websites which makes use of the same software package however it's the customer support which make a difference amongst all of them. A site with excellent customer care as well as best software package will always have much more number of people in comparison to the site having the very same software but not good customer service. Fresher can certainly learn about the client service given by the websites by sending these folks a message or even calling these using a telephone. The response time period taken by the customer care team of the website decides the overall performance of the site.
Another point of the gambling evaluation may be the transparency policy of the different gambling websites. An excellent website may usually allow its clients to go through the info that they will need. The actual critical reviews show that one must always gamble by using a certified gambling website. One more thing to think about is the bonus that is offered roughly by all gambling sites for opening fresh account. One should try to get the best bonus offers. When selecting game titles it really is beneficial to choose series and win more money.
Gambling review is extremely crucial and one should go through as much evaluations as possible to get appropriate information about the gambling websites and the games offered by all of them.


Our times are characterized by the accelerating collapse and redrawing of multiple borders: between nation states, personal identities, and the responsibilities we have for each other. Also between the old distinctions, work and pleasure.
Some leaders as part of the new world order, tell us through their political actions and their fashion accessories, that they "Just Don't Care". This "political art-form"1 of not caring permits an insidious spread of hatred online and on the ground. In recent times, the digital condition has lent it's networks and platforms to this poisonous, rhetorical hyperbole, turning against immigrants, and others who do not fit into the framework of a western world, oligarch orientated vision. Mass extraction and manipulation of social data has facilitated the circulation of fake news and the production of fear, anxiety and uncertainty. Together these fuel the machine of structural violence adding to the already challenging conditions created by Austerity policies, growing debt and poverty.
In the face of these outlandish difficulties our digital tools and networks – taken up with a spirit of cultural comradeship. More inspiring narratives are emerging from across disciplines and backgrounds, to experiment with new solidarity-generating approaches that critique and build platforms, infrastructures and networks, offering new possibilities for reassessing and re-forming citizenship and rights.
The exhibition and labs for Playbour – Work, Pleasure, Survival, have created new contexts for collaboration. Artists (from the local area and internationally), game designers and architects, come together with researchers from psychology and neuroscience addressing the data driven gamification of life and everything.
In her interview, the curator Dani Admiss discusses how they reassess the power relationships of the gallery, park users and the local authorities, asking who owns the cultural infrastructure and public amenities – and so create a polemic to open up questions of public value. The exhibition is open every weekend through 14 July to 19 August 2018.
The artists featured in Transnationalisms exhibition curated by James Bridle address the effect on our bodies, our environment, and our political practices of unstable borders.
We Help Each Other Grow, 2017 from They Are Here.
The show opens at Furtherfield from September 14th to October 26th 2018, touring as part of State Machines the EU cooperation which investigates the new relationships between states, citizens and the stateless made possible by emerging technologies.
We have another interview with artist and activist Cassie Thornton, where we discuss her current project Hologram, which examines health in the age of financialization, and works to reveal the connection between the body and capitalism. Her interview focuses on a series of experiments that actively counter the effects of indebtedness through somatic – or body – work including her focus on the way in which institutions produce or take away from the health of the artists and workers they "support".
Finally I interview Tatiana Bazzichelli, artistic director and curator of the Disruption Network Lab, in Berlin, questions about art as Investigation of political misconducts and Wrongdoing. Since 2015, the Disruption Network Lab has cultivated a stage and a sanctuary for otherwise unheard and stigmatised voices to delve into and explore the urgent political realities of their existence at a time when the media establishment has no investment in truth telling for public interest.
"When the speakers are with us and open their minds to our topics, I feel that we are receiving a gift from them. I come from a tradition in which communities, networks and the sharing of experience were the most important values, the artwork by themselves." Bazzichelli.
The programme creates a conceptual and practical space in which whistleblowers, human right advocates, artists, hackers, journalists, lawyers and activists are able to present their experience, their research and their actions – with the objective of strengthening human rights and freedom of speech, as well as exposing the misconduct and wrongdoing of the powerful.
"Whether in the variety of human, backgrounds and perspectives, biodiversity or diversity of technologies, coding languages, devices, or technological cultures. Diversity is Proof of Life." Ruth Catlow, 2018.


Abstract. This study compared the physical and mechanical properties of river sand concrete with quarry dust concrete. The constituent materials were batched by weight.
Characteristic studies on the mechanical properties of quarry dust ... Full Length Research Paper. Characteristic studies on the mechanical properties of quarry dust addition in conventional concrete.
Improving Properties of Black Cotton Soil with Quarry Dust Manuscript id.543157462 Page 10 improve the workability (MoW, 1999).
The optimum ratio of fly ash and billet scale, quarry dust and billet scale is found to be 1:1 since it showed the best performance with regard to mechanical properties. (6) Manufacture of bricks using a combination of billet scale, quarry dust and fly ash is feasible.
2013-02-14· Strength and durability properties of concrete containing quarry … CONTAINING QUARRY ROCK DUST AS FINE AGGREGATE … (Natural river sand) River sand having density of 1460 kg/m3 and fineness Modulus (FM) of was used.
The scope of the study essentially centered on the use of quarry dust for improving lateriitc soil.The study is limited only to analysis of lateritic soil.
International Journal of Technology and Engineering Studies IJTES vol, 1, no. 1, pp. 8-13, 2015 Content from this work is copyrighted by KKG Publications, which permits restricted commercial use, distribution and reproduction in any medium under a written permission.


through the book Mastering Genealogical Proof, by Thomas W. Jones, in small groups of 10-15 individuals guided by a mentor. They discuss their thoughts, insights and questions about the five parts of the Genealogical Proof Standard (GPS), the chapter exercises and, their own research as it applies to the GPS. If you want to effectively apply the GPS to your own research, this successful program is an excellent way.
Currently there are two groups with openings. One is a beginner/intermediate group. The other is an advanced group. Each group will cover one chapter per week. There are only a few spots left in each group so claim yours now!
Group 33 with mentor Christine Sharbrough begins July 6th. It is a beginner/intermediate group using the asynchronous chat format in Google+ Communities. They will cover one chapter per week. There is one spot left in this group.
Group 34 with mentor Melanie Holtz begins June 29th. It is an advanced group also using the asynchronous chat format in Google + Communities. They will cover one chapter per week.
If you are interested, send an email to genproofstudy@gmail.com and the administrator, Michelle Goodrum, will send you an invitation to register for the group. If you would like to be placed on the waiting list for future groups, send an email to genproofstudy@gmail.com and, if you have a preference, indicate whether you are interested in beginner/intermediate or an advanced group.
before the Institute begins. You can check their website (https://www.apgen.org/conferences/index.html) for more information. You can experience two great events being held back-to-back at one location!
I am very excited to announce the 2015 instructors for the Advanced Evidence Analysis Practicum course at the Salt Lake Institute of Genealogy (SLIG). They are top quality instructors (see bios below) and have each prepared an interesting case for the students to work through. These cases will provide experience working with different geographic locations and methodologies as participants research and then analyze and correlate evidence to solve the cases.
If you would like to participate in this challenging course registration opens on June 14th. The Salt Lake Institute of Genealogy will be held January 12-16, 2015 at the Hilton Hotel in downtown Salt Lake City, Utah just blocks from the Family History Library.
Nancy A. Peters, CG, is a full-time genealogist specializing in South Carolina and English research. Board-certified since 2011, she serves as an editorial assistant for On Board, the newsletter of the Board for Certification of Genealogists. She also volunteers as a collection care assistant in the conservation lab at the South Carolina Department of Archives and History in Columbia. Her articles published in the NGSQ and the UGA Crosssroads magazine have focused on establishing parentage using complex evidence analysis. In her career before genealogy, she designed technical training courses and provided instruction internationally for corporate clients in the software industry. Nancy holds advanced degrees from the University of Arizona and the London School of Economics in London, England.
Paul K. Graham, CG, AG, is a genealogist at Ancestry.com. He holds a master's degree in Heritage Preservation and is the author of several books and articles, primarily related to the state of Georgia. His work has been recognized with multiple awards, including the ASG Scholar Award and as winner of the NGS Family History Writing Contest. His television research credits include African American Lives (2006) and Who Do You Think You Are? (2012-2014). Paul currently resides in Salt Lake City.
J. H. ("Jay") Fonkert, CG, is a Minnesota-based writer and genealogical educator. Managing editor of Minnesota Genealogist, he has published more than 30 articles and reviews in NGS Quarterly, NGS Magazine, APG Quarterly, Family Chronicle, The Septs, and Minnesota Genealogist. He is a Director of the Association of Professional Genealogists, a trustee of the BCG Education Fund, and a past-president of the Minnesota Genealogical Society.
Angela Packer McGhie is the administrator of the ProGen Study Program where she manages online groups studying Professional Genealogy. Angela focuses her efforts on genealogy education as she serves as the coordinator for the Intermediate Genealogy and Historical Research course at the Institute of Genealogy and Historical Research (IGHR) at Samford University, and as coordinator of the Advanced Evidence Analysis Practicum at the Salt Lake Institute of Genealogy (SLIG). She has been an instructor at the National Institute for Genealogy Research (NIGR) in Washington, D.C., the Genealogical Research Institute of Pittsburgh (GRIP), and Howard Community College in Columbia, Maryland. Angela has completed the NGS American Genealogy course and studied at IGHR, SLIG and NIGR. She is a past president of the National Capital Area Chapter of the Association of Professional Genealogists and has published in the APG Quarterly.
Kimberly Powell is a professional genealogist, author, and blogger. She has been writing about genealogy for About.com (http://genealogy.about.com) since 2000. She is the author of several books including The Everything Guide to Online Genealogy, 3rd edition (Adams Media, 2014), as well as articles for popular genealogy magazines such as BBC's Who Do You Think You Are? magazine. Kimberly is the President of the Association of Professional Genealogists, and also serves on its Professional Development Committee. She is an instructor at the Institute of Genealogy and Historical Research (IGHR) and the Salt Lake Institute of Genealogy (SLIG). She also serves as webmaster for the Western Pennsylvania Genealogical Society.
comprised of SLIG committee members and the family of the late Jimmy B. Parker.
Applications and essays are due by July 1st and the winner will be announced July 15th.


The Exchange Solution Reviewed Program (ESRP) was developed to provide a common storage testing framework for 3rd party vendors to provide information on their storage performance for Microsoft Exchange Server. For tested storage solutions, please consult the Exchange Solution Reviewed Program page for Exchange 2013 (ESRPv3) and Exchange 2013 (ESRPv4) here.
These solutions are only reviewed under the reviewed specifications, which is not only limited to the hardware, like number of nodes, controllers or memory configuration, but also parameters like the IOPS profile used or mailbox sizes. For example, some vendors use a low 0.06 IOPS profile, some 0.12 IOPS. This decreases (or increases) the potential number of mailboxes to run on that hardware configuration for the same test results.
Note that tweaks offered by individual storage solutions and likely not enabled for the review, such as compression techniques for lowering disk footprints or RAID encoding alternatives, may actually degrade performance or reliability when enabled in. Therefor I still highly recommended to validate your storage design before putting Exchange in production, for example by successfully running JetStress.
Finally, and unfortunately, the ESRP doesn't say anything about solutions being cost-effective. Don't forget, when properly sized, Exchange with all its built-in availability and resilience features can run fine on commodity hardware.


We are most well known for our high quality and expert cleaning of designer hand bags.
We are recommended by Anya Hindmarch, Harrods and Harvey Nichols for cleaning their designer handbags.
We can pick-up and deliver in central London for the convenience of our customers.


text:
A new design for program‐controlled voice switching circuits using a microprocessor
Hiroshi Oikawa*, Shoji Makino, Masakazu Nishino, Kazuhiko Yamamori
The voice switching circuit (VS) is applied widely to various problems, including echo suppression and howling suppression in the communication equipment, realizing the magnified voice communication using microphones and loudspeakers. It is also applied frequently in recent years in combination with the echo canceller, in a form to complement the performance of the echo canceller. Kato et al. [3] discussed in detail the operational performance and the design method when VS is realized by the analog circuit, and proposed the automatic loss switching VS (ALS), where the switching loss is reduced by automatically adapting to the change of the acoustic and side‐tone characteristics. In their method, however, ALS is constructed using only the analog circuit. This makes the design complicated and makes it difficult to reduce the switching loss compared to the present design. With this in mind, the goal here is to realize the ALS function by program control, using the microprocessor (μP). the following two program‐controlled VS with excellent voice communication functions are proposed.
Electronics and Communications in Japan (Part I: Communications)
https://doi.org/10.1002/ecja.4410780401
10.1002/ecja.4410780401
「A new design for program‐controlled voice switching circuits using a microprocessor」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。
Switching circuits Engineering & Materials Science 100%
Microprocessor chips Engineering & Materials Science 70%
Speech communication Engineering & Materials Science 39%
Analog circuits Engineering & Materials Science 35%
Echo suppression Engineering & Materials Science 21%
Switching functions Engineering & Materials Science 20%
Loudspeakers Engineering & Materials Science 19%
Microphones Engineering & Materials Science 16%
Oikawa, H., Makino, S., Nishino, M., & Yamamori, K. (1995). A new design for program‐controlled voice switching circuits using a microprocessor. Electronics and Communications in Japan (Part I: Communications), 78(4), 1-13. https://doi.org/10.1002/ecja.4410780401
A new design for program‐controlled voice switching circuits using a microprocessor. / Oikawa, Hiroshi; Makino, Shoji; Nishino, Masakazu その他.
In: Electronics and Communications in Japan (Part I: Communications), Vol. 78, No. 4, 04.1995, p. 1-13.
Oikawa, H, Makino, S, Nishino, M & Yamamori, K 1995, 'A new design for program‐controlled voice switching circuits using a microprocessor', Electronics and Communications in Japan (Part I: Communications), vol. 78, no. 4, pp. 1-13. https://doi.org/10.1002/ecja.4410780401
Oikawa H, Makino S, Nishino M, Yamamori K. A new design for program‐controlled voice switching circuits using a microprocessor. Electronics and Communications in Japan (Part I: Communications). 1995 4月;78(4):1-13. doi: 10.1002/ecja.4410780401
Oikawa, Hiroshi ; Makino, Shoji ; Nishino, Masakazu その他. / A new design for program‐controlled voice switching circuits using a microprocessor. In: Electronics and Communications in Japan (Part I: Communications). 1995 ; Vol. 78, No. 4. pp. 1-13.
@article{7c1d3b5f7ae240efb5e971ba7c9814a1,
title = "A new design for program‐controlled voice switching circuits using a microprocessor",
abstract = "The voice switching circuit (VS) is applied widely to various problems, including echo suppression and howling suppression in the communication equipment, realizing the magnified voice communication using microphones and loudspeakers. It is also applied frequently in recent years in combination with the echo canceller, in a form to complement the performance of the echo canceller. Kato et al. [3] discussed in detail the operational performance and the design method when VS is realized by the analog circuit, and proposed the automatic loss switching VS (ALS), where the switching loss is reduced by automatically adapting to the change of the acoustic and side‐tone characteristics. In their method, however, ALS is constructed using only the analog circuit. This makes the design complicated and makes it difficult to reduce the switching loss compared to the present design. With this in mind, the goal here is to realize the ALS function by program control, using the microprocessor (μP). the following two program‐controlled VS with excellent voice communication functions are proposed.",
keywords = "Voice switching circuit, frequency‐divided voice switching circuit, loudspeaker telephone",
author = "Hiroshi Oikawa and Shoji Makino and Masakazu Nishino and Kazuhiko Yamamori",
doi = "10.1002/ecja.4410780401",
journal = "Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)",
T1 - A new design for program‐controlled voice switching circuits using a microprocessor
AU - Oikawa, Hiroshi
AU - Makino, Shoji
AU - Nishino, Masakazu
AU - Yamamori, Kazuhiko
N2 - The voice switching circuit (VS) is applied widely to various problems, including echo suppression and howling suppression in the communication equipment, realizing the magnified voice communication using microphones and loudspeakers. It is also applied frequently in recent years in combination with the echo canceller, in a form to complement the performance of the echo canceller. Kato et al. [3] discussed in detail the operational performance and the design method when VS is realized by the analog circuit, and proposed the automatic loss switching VS (ALS), where the switching loss is reduced by automatically adapting to the change of the acoustic and side‐tone characteristics. In their method, however, ALS is constructed using only the analog circuit. This makes the design complicated and makes it difficult to reduce the switching loss compared to the present design. With this in mind, the goal here is to realize the ALS function by program control, using the microprocessor (μP). the following two program‐controlled VS with excellent voice communication functions are proposed.
AB - The voice switching circuit (VS) is applied widely to various problems, including echo suppression and howling suppression in the communication equipment, realizing the magnified voice communication using microphones and loudspeakers. It is also applied frequently in recent years in combination with the echo canceller, in a form to complement the performance of the echo canceller. Kato et al. [3] discussed in detail the operational performance and the design method when VS is realized by the analog circuit, and proposed the automatic loss switching VS (ALS), where the switching loss is reduced by automatically adapting to the change of the acoustic and side‐tone characteristics. In their method, however, ALS is constructed using only the analog circuit. This makes the design complicated and makes it difficult to reduce the switching loss compared to the present design. With this in mind, the goal here is to realize the ALS function by program control, using the microprocessor (μP). the following two program‐controlled VS with excellent voice communication functions are proposed.
KW - Voice switching circuit
KW - frequency‐divided voice switching circuit
KW - loudspeaker telephone
U2 - 10.1002/ecja.4410780401
DO - 10.1002/ecja.4410780401
JO - Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)
JF - Electronics and Communications in Japan, Part I: Communications (English translation of Denshi Tsushin Gakkai Ronbunshi)