text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.facebook.presto.byteCode;

import com.facebook.presto.byteCode.debug.LineNumberNode;
import com.facebook.presto.byteCode.instruction.Constant;
import com.facebook.presto.byteCode.instruction.InvokeInstruction;
import com.facebook.presto.byteCode.instruction.JumpInstruction;
import com.facebook.presto.byteCode.instruction.LabelNode;
import com.facebook.presto.byteCode.instruction.TypeInstruction;
import com.facebook.presto.byteCode.instruction.VariableInstruction;
import com.google.common.collect.ImmutableList;
import org.objectweb.asm.MethodVisitor;

import javax.annotation.concurrent.NotThreadSafe;

import java.lang.invoke.MethodType;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;

import static com.facebook.presto.byteCode.Access.STATIC;
import static com.facebook.presto.byteCode.ParameterizedType.type;
import static com.facebook.presto.byteCode.instruction.Constant.loadBoolean;
import static com.facebook.presto.byteCode.instruction.Constant.loadClass;
import static com.facebook.presto.byteCode.instruction.Constant.loadDouble;
import static com.facebook.presto.byteCode.instruction.Constant.loadFloat;
import static com.facebook.presto.byteCode.instruction.Constant.loadInt;
import static com.facebook.presto.byteCode.instruction.Constant.loadLong;
import static com.facebook.presto.byteCode.instruction.Constant.loadNumber;
import static com.facebook.presto.byteCode.instruction.FieldInstruction.getFieldInstruction;
import static com.facebook.presto.byteCode.instruction.FieldInstruction.getStaticInstruction;
import static com.facebook.presto.byteCode.instruction.FieldInstruction.putFieldInstruction;
import static com.facebook.presto.byteCode.instruction.FieldInstruction.putStaticInstruction;
import static com.facebook.presto.byteCode.instruction.TypeInstruction.cast;
import static com.facebook.presto.byteCode.instruction.TypeInstruction.instanceOf;
import static com.facebook.presto.byteCode.instruction.VariableInstruction.loadVariable;
import static com.facebook.presto.byteCode.instruction.VariableInstruction.storeVariable;
import static com.google.common.base.Preconditions.checkArgument;

@SuppressWarnings("UnusedDeclaration")
@NotThreadSafe
public class Block
        implements ByteCodeNode
{
    private final List<ByteCodeNode> nodes = new ArrayList<>();

    private String description;
    private int currentLineNumber = -1;

    public Block()
    {
    }

    public String getDescription()
    {
        return description;
    }

    public Block setDescription(String description)
    {
        this.description = description;
        return this;
    }

    @Override
    public List<ByteCodeNode> getChildNodes()
    {
        return ImmutableList.copyOf(nodes);
    }

    public Block append(ByteCodeNode node)
    {
        nodes.add(node);
        return this;
    }

    public Block comment(String comment)
    {
        nodes.add(new Comment(comment));
        return this;
    }

    public Block comment(String comment, Object... args)
    {
        nodes.add(new Comment(String.format(comment, args)));
        return this;
    }

    public boolean isEmpty()
    {
        return nodes.isEmpty();
    }

    public Block visitLabel(LabelNode label)
    {
        nodes.add(label);
        return this;
    }

    public Block gotoLabel(LabelNode label)
    {
        nodes.add(JumpInstruction.jump(label));
        return this;
    }

    public Block ifFalseGoto(LabelNode label)
    {
        return ifZeroGoto(label);
    }

    public Block ifTrueGoto(LabelNode label)
    {
        return ifNotZeroGoto(label);
    }

    public Block ifZeroGoto(LabelNode label)
    {
        nodes.add(JumpInstruction.jumpIfEqualZero(label));
        return this;
    }

    public Block ifNotZeroGoto(LabelNode label)
    {
        nodes.add(JumpInstruction.jumpIfNotEqualZero(label));
        return this;
    }

    public Block ifNullGoto(LabelNode label)
    {
        nodes.add(JumpInstruction.jumpIfNull(label));
        return this;
    }

    public Block ifNotNullGoto(LabelNode label)
    {
        nodes.add(JumpInstruction.jumpIfNotNull(label));
        return this;
    }

    public Block intAdd()
    {
        nodes.add(OpCode.IADD);
        return this;
    }

    public Block longAdd()
    {
        nodes.add(OpCode.LADD);
        return this;
    }

    public Block longCompare()
    {
        nodes.add(OpCode.LCMP);
        return this;
    }

    /**
     * Compare two doubles. If either is NaN comparison is -1.
     */
    public Block doubleCompareNanLess()
    {
        nodes.add(OpCode.DCMPL);
        return this;
    }

    /**
     * Compare two doubles. If either is NaN comparison is 1.
     */
    public Block doubleCompareNanGreater()
    {
        nodes.add(OpCode.DCMPG);
        return this;
    }

    public Block intLeftShift()
    {
        nodes.add(OpCode.ISHL);
        return this;
    }

    public Block intRightShift()
    {
        nodes.add(OpCode.ISHR);
        return this;
    }

    public Block longLeftShift()
    {
        nodes.add(OpCode.LSHL);
        return this;
    }

    public Block longRightShift()
    {
        nodes.add(OpCode.LSHR);
        return this;
    }

    public Block unsignedIntRightShift()
    {
        nodes.add(OpCode.IUSHR);
        return this;
    }

    public Block unsignedLongRightShift()
    {
        nodes.add(OpCode.LUSHR);
        return this;
    }

    public Block intBitAnd()
    {
        nodes.add(OpCode.IAND);
        return this;
    }

    public Block intBitOr()
    {
        nodes.add(OpCode.IOR);
        return this;
    }

    public Block intBitXor()
    {
        nodes.add(OpCode.IXOR);
        return this;
    }

    public Block longBitAnd()
    {
        nodes.add(OpCode.LAND);
        return this;
    }

    public Block longBitOr()
    {
        nodes.add(OpCode.LOR);
        return this;
    }

    public Block longBitXor()
    {
        nodes.add(OpCode.LXOR);
        return this;
    }

    public Block intNegate()
    {
        nodes.add(OpCode.INEG);
        return this;
    }

    public Block intToLong()
    {
        nodes.add(OpCode.I2L);
        return this;
    }

    public Block longNegate()
    {
        nodes.add(OpCode.LNEG);
        return this;
    }

    public Block longToInt()
    {
        nodes.add(OpCode.L2I);
        return this;
    }

    public Block isInstanceOf(Class<?> type)
    {
        nodes.add(instanceOf(type));
        return this;
    }

    public Block isInstanceOf(ParameterizedType type)
    {
        nodes.add(instanceOf(type));
        return this;
    }

    public Block checkCast(Class<?> type)
    {
        nodes.add(cast(type));
        return this;
    }

    public Block checkCast(ParameterizedType type)
    {
        nodes.add(cast(type));
        return this;
    }

    public Block invokeStatic(Method method)
    {
        nodes.add(InvokeInstruction.invokeStatic(method));
        return this;
    }

    public Block invokeStatic(MethodDefinition method)
    {
        nodes.add(InvokeInstruction.invokeStatic(method));
        return this;
    }

    public Block invokeStatic(Class<?> type, String name, Class<?> returnType, Class<?>... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeStatic(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeStatic(Class<?> type, String name, Class<?> returnType, Iterable<Class<?>> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeStatic(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeStatic(ParameterizedType type, String name, ParameterizedType returnType, ParameterizedType... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeStatic(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeStatic(ParameterizedType type, String name, ParameterizedType returnType, Iterable<ParameterizedType> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeStatic(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeVirtual(Method method)
    {
        nodes.add(InvokeInstruction.invokeVirtual(method));
        return this;
    }

    public Block invokeVirtual(MethodDefinition method)
    {
        nodes.add(InvokeInstruction.invokeVirtual(method));
        return this;
    }

    public Block invokeVirtual(Class<?> type, String name, Class<?> returnType, Class<?>... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeVirtual(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeVirtual(Class<?> type, String name, Class<?> returnType, Iterable<Class<?>> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeVirtual(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeVirtual(ParameterizedType type, String name, ParameterizedType returnType, ParameterizedType... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeVirtual(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeVirtual(ParameterizedType type, String name, ParameterizedType returnType, Iterable<ParameterizedType> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeVirtual(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeInterface(Method method)
    {
        nodes.add(InvokeInstruction.invokeInterface(method));
        return this;
    }

    public Block invokeInterface(MethodDefinition method)
    {
        nodes.add(InvokeInstruction.invokeInterface(method));
        return this;
    }

    public Block invokeInterface(Class<?> type, String name, Class<?> returnType, Class<?>... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeInterface(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeInterface(Class<?> type, String name, Class<?> returnType, Iterable<Class<?>> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeInterface(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeInterface(ParameterizedType type, String name, ParameterizedType returnType, ParameterizedType... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeInterface(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeInterface(ParameterizedType type, String name, ParameterizedType returnType, Iterable<ParameterizedType> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeInterface(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeConstructor(Constructor<?> constructor)
    {
        nodes.add(InvokeInstruction.invokeConstructor(constructor));
        return this;
    }

    public Block invokeConstructor(Class<?> type, Class<?>... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeConstructor(type, parameterTypes));
        return this;
    }

    public Block invokeConstructor(Class<?> type, Iterable<Class<?>> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeConstructor(type, parameterTypes));
        return this;
    }

    public Block invokeConstructor(ParameterizedType type, ParameterizedType... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeConstructor(type, parameterTypes));
        return this;
    }

    public Block invokeConstructor(ParameterizedType type, Iterable<ParameterizedType> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeConstructor(type, parameterTypes));
        return this;
    }

    public Block invokeSpecial(Method method)
    {
        nodes.add(InvokeInstruction.invokeSpecial(method));
        return this;
    }

    public Block invokeSpecial(MethodDefinition method)
    {
        nodes.add(InvokeInstruction.invokeSpecial(method));
        return this;
    }

    public Block invokeSpecial(Class<?> type, String name, Class<?> returnType, Class<?>... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeSpecial(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeSpecial(Class<?> type, String name, Class<?> returnType, Iterable<Class<?>> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeSpecial(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeSpecial(ParameterizedType type, String name, ParameterizedType returnType, ParameterizedType... parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeSpecial(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeSpecial(ParameterizedType type, String name, ParameterizedType returnType, Iterable<ParameterizedType> parameterTypes)
    {
        nodes.add(InvokeInstruction.invokeSpecial(type, name, returnType, parameterTypes));
        return this;
    }

    public Block invokeDynamic(String name, MethodType methodType, Method bootstrapMethod, Object... defaultBootstrapArguments)
    {
        nodes.add(InvokeInstruction.invokeDynamic(name, methodType, bootstrapMethod, defaultBootstrapArguments));
        return this;
    }

    public ByteCodeNode invokeDynamic(String name,
            ParameterizedType returnType,
            Iterable<ParameterizedType> parameterTypes,
            Method bootstrapMethod,
            List<Object> bootstrapArgs)
    {
        nodes.add(InvokeInstruction.invokeDynamic(name, returnType, parameterTypes, bootstrapMethod, bootstrapArgs));
        return this;
    }

    public Block ret(Class<?> type)
    {
        if (type == long.class) {
            retLong();
        }
        else if (type == boolean.class) {
            retBoolean();
        }
        else if (type == int.class || type == byte.class || type == char.class || type == short.class) {
            retInt();
        }
        else if (type == float.class) {
            retFloat();
        }
        else if (type == double.class) {
            retDouble();
        }
        else if (type == void.class) {
            ret();
        }
        else if (!type.isPrimitive()) {
            retObject();
        }
        else {
            throw new IllegalArgumentException("Unsupported type: " + type.getName());
        }

        return this;
    }

    public Block ret()
    {
        nodes.add(OpCode.RETURN);
        return this;
    }

    public Block retObject()
    {
        nodes.add(OpCode.ARETURN);
        return this;
    }

    public Block retFloat()
    {
        nodes.add(OpCode.FRETURN);
        return this;
    }

    public Block retDouble()
    {
        nodes.add(OpCode.DRETURN);
        return this;
    }

    public Block retBoolean()
    {
        nodes.add(OpCode.IRETURN);
        return this;
    }

    public Block retLong()
    {
        nodes.add(OpCode.LRETURN);
        return this;
    }

    public Block retInt()
    {
        nodes.add(OpCode.IRETURN);
        return this;
    }

    public Block throwObject()
    {
        nodes.add(OpCode.ATHROW);
        return this;
    }

    public Block newObject(Class<?> type)
    {
        nodes.add(TypeInstruction.newObject(type));
        return this;
    }

    public Block newObject(ParameterizedType type)
    {
        nodes.add(TypeInstruction.newObject(type));
        return this;
    }

    public Block newArray(Class<?> type)
    {
        nodes.add(TypeInstruction.newObjectArray(type));
        return this;
    }

    public Block dup()
    {
        nodes.add(OpCode.DUP);
        return this;
    }

    public Block dup(Class<?> type)
    {
        if (type == long.class || type == double.class) {
            nodes.add(OpCode.DUP2);
        }
        else {
            nodes.add(OpCode.DUP);
        }
        return this;
    }

    public Block pop()
    {
        nodes.add(OpCode.POP);
        return this;
    }

    public Block pop(Class<?> type)
    {
        if (type == long.class || type == double.class) {
            nodes.add(OpCode.POP2);
        }
        else if (type != void.class) {
            nodes.add(OpCode.POP);
        }
        return this;
    }

    public Block pop(ParameterizedType type)
    {
        Class<?> primitiveType = type.getPrimitiveType();
        if (primitiveType == long.class || primitiveType == double.class) {
            nodes.add(OpCode.POP2);
        }
        else if (primitiveType != void.class) {
            nodes.add(OpCode.POP);
        }
        return this;
    }

    public Block swap()
    {
        nodes.add(OpCode.SWAP);
        return this;
    }

    //
    // Fields (non-static)
    //

    public Block getField(Field field)
    {
        return getField(field.getDeclaringClass(), field.getName(), field.getType());
    }

    public Block getField(FieldDefinition field)
    {
        getField(field.getDeclaringClass().getType(), field.getName(), field.getType());
        return this;
    }

    public Block getField(Class<?> target, String fieldName, Class<?> fieldType)
    {
        getField(type(target), fieldName, type(fieldType));
        return this;
    }

    public Block getField(ParameterizedType target, String fieldName, ParameterizedType fieldType)
    {
        nodes.add(getFieldInstruction(target, fieldName, fieldType));
        return this;
    }

    public Block putField(Field field)
    {
        return putField(field.getDeclaringClass(), field.getName(), field.getType());
    }

    public Block putField(Class<?> target, String fieldName, Class<?> fieldType)
    {
        putField(type(target), fieldName, type(fieldType));
        return this;
    }

    public Block putField(FieldDefinition field)
    {
        checkArgument(!field.getAccess().contains(STATIC), "Field is static: %s", field);
        putField(field.getDeclaringClass().getType(), field.getName(), field.getType());
        return this;
    }

    public Block putField(ParameterizedType target, String fieldName, ParameterizedType fieldType)
    {
        nodes.add(putFieldInstruction(target, fieldName, fieldType));
        return this;
    }

    //
    // Static fields
    //

    public Block getStaticField(FieldDefinition field)
    {
        getStaticField(field.getDeclaringClass().getType(), field.getName(), field.getType());
        return this;
    }

    public Block getStaticField(Field field)
    {
        checkArgument(Modifier.isStatic(field.getModifiers()), "Field is not static: %s", field);
        getStaticField(type(field.getDeclaringClass()), field.getName(), type(field.getType()));
        return this;
    }

    public Block getStaticField(Class<?> target, String fieldName, Class<?> fieldType)
    {
        nodes.add(getStaticInstruction(target, fieldName, fieldType));
        return this;
    }

    public Block getStaticField(ParameterizedType target, String fieldName, ParameterizedType fieldType)
    {
        nodes.add(getStaticInstruction(target, fieldName, fieldType));
        return this;
    }

    public Block getStaticField(ParameterizedType target, FieldDefinition field)
    {
        nodes.add(getStaticInstruction(target, field.getName(), field.getType()));
        return this;
    }

    public Block putStaticField(FieldDefinition field)
    {
        putStaticField(field.getDeclaringClass().getType(), field.getName(), field.getType());
        return this;
    }

    public Block putStaticField(ParameterizedType target, FieldDefinition field)
    {
        checkArgument(field.getAccess().contains(STATIC), "Field is not static: %s", field);
        putStaticField(target, field.getName(), field.getType());
        return this;
    }

    public Block putStaticField(ParameterizedType target, String fieldName, ParameterizedType fieldType)
    {
        nodes.add(putStaticInstruction(target, fieldName, fieldType));
        return this;
    }

    //
    // Load constants
    //

    public Block pushNull()
    {
        nodes.add(OpCode.ACONST_NULL);
        return this;
    }

    public Block push(Class<?> type)
    {
        nodes.add(loadClass(type));
        return this;
    }

    public Block push(ParameterizedType type)
    {
        nodes.add(loadClass(type));
        return this;
    }

    public Block push(String value)
    {
        nodes.add(Constant.loadString(value));
        return this;
    }

    public Block push(Number value)
    {
        nodes.add(loadNumber(value));
        return this;
    }

    public Block push(int value)
    {
        nodes.add(loadInt(value));
        return this;
    }

    public Block push(boolean value)
    {
        nodes.add(loadBoolean(value));
        return this;
    }

    public Block pushJavaDefault(Class<?> type)
    {
        if (type == void.class) {
            return this;
        }
        if (type == boolean.class || type == byte.class || type == char.class || type == short.class || type == int.class) {
            return push(0);
        }
        if (type == long.class) {
            return push(0L);
        }
        if (type == float.class) {
            return push(0.0f);
        }
        if (type == double.class) {
            return push(0.0d);
        }
        return pushNull();
    }

    public Block initializeVariable(Variable variable)
    {
        ParameterizedType type = variable.getType();
        if (type.getType().length() == 1) {
            switch (type.getType().charAt(0)) {
                case 'B':
                case 'Z':
                case 'S':
                case 'C':
                case 'I':
                    nodes.add(loadInt(0));
                    break;
                case 'F':
                    nodes.add(loadFloat(0));
                    break;
                case 'D':
                    nodes.add(loadDouble(0));
                    break;
                case 'J':
                    nodes.add(loadLong(0));
                    break;
                default:
                    checkArgument(false, "Unknown type '%s'", variable.getType());
            }
        }
        else {
            nodes.add(Constant.loadNull());
        }

        nodes.add(storeVariable(variable));

        return this;
    }

    public Block getVariable(Variable variable)
    {
        nodes.add(loadVariable(variable));
        return this;
    }

    public Block putVariable(Variable variable)
    {
        nodes.add(storeVariable(variable));
        return this;
    }

    public Block putVariable(Variable variable, Class<?> type)
    {
        nodes.add(loadClass(type));
        putVariable(variable);
        return this;
    }

    public Block putVariable(Variable variable, ParameterizedType type)
    {
        nodes.add(loadClass(type));
        putVariable(variable);
        return this;
    }

    public Block putVariable(Variable variable, String value)
    {
        nodes.add(Constant.loadString(value));
        putVariable(variable);
        return this;
    }

    public Block putVariable(Variable variable, Number value)
    {
        nodes.add(loadNumber(value));
        putVariable(variable);
        return this;
    }

    public Block putVariable(Variable variable, int value)
    {
        nodes.add(loadInt(value));
        putVariable(variable);
        return this;
    }

    public Block putVariable(Variable variable, boolean value)
    {
        nodes.add(loadBoolean(value));
        putVariable(variable);
        return this;
    }

    public Block incrementVariable(Variable variable, byte increment)
    {
        String type = variable.getType().getClassName();
        checkArgument(ImmutableList.of("byte", "short", "int").contains(type), "variable must be an byte, short or int, but is %s", type);
        nodes.add(VariableInstruction.incrementVariable(variable, increment));
        return this;
    }

    public Block getObjectArrayElement()
    {
        nodes.add(OpCode.AALOAD);
        return this;
    }

    public Block putObjectArrayElement()
    {
        nodes.add(OpCode.AASTORE);
        return this;
    }

    public Block visitLineNumber(int currentLineNumber)
    {
        checkArgument(currentLineNumber >= 0, "currentLineNumber must be positive");
        if (this.currentLineNumber != currentLineNumber) {
            nodes.add(new LineNumberNode(currentLineNumber));
            this.currentLineNumber = currentLineNumber;
        }
        return this;
    }

    @Override
    public void accept(MethodVisitor visitor, MethodGenerationContext generationContext)
    {
        for (ByteCodeNode node : nodes) {
            node.accept(visitor, generationContext);
        }
    }

    @Override
    public <T> T accept(ByteCodeNode parent, ByteCodeVisitor<T> visitor)
    {
        return visitor.visitBlock(parent, this);
    }
}


NTID assigns faculty to provide tutoring, academic/career advising, and personal counseling for deaf and hard-of-hearing students enrolled in courses and programs in the other colleges of RIT. These faculty are skilled at working with students of all communication orientations, including those who do not use sign language as well as those who communicate in ASL.
Tutoring, which may happen in an individual or group setting, is one of the fundamental academic support services for deaf and hard-of-hearing students at RIT. Professional tutors are NTID faculty with expertise in specific disciplines associated with each of the colleges of RIT.
NTID faculty advisors assist deaf and hard-of-hearing students in the other colleges of RIT with registration, course selection and career planning. They work closely together with RIT faculty, staff and administration, as well as NTID Access Services, Admissions, RIT Student Services, Financial Aid and related NTID programs or external agencies.
The NTID Counseling and Academic Advising Department assigns personal counselors to work with tutors and advisors to form a comprehensive system of support for deaf and hard-of-hearing students in all aspects of their college life.


ARLINGTON, Va. (NNS) -- On July 7-12, 16 teams-from the United States and as far away as Indonesia, Taiwan and South Korea-hit the water with custom-built autonomous surface vehicles (ASVs) at the eighth annual RoboBoat Competition, held in Virginia Beach, Virginia.
The competition-sponsored by the Office of Naval Research and the Association for Unmanned Vehicle Systems International Foundation-is an autonomous robotics contest where teams put their student-built ASVs through a series of challenges.
"The course provides students with realistic maritime environment missions," said Kelly Cooper, a program officer in ONR's Sea Warfare and Weapons, Ship Systems and Engineering Research Division. "The successes and challenges students experience via the competition are good preparation for a future in engineering, hopefully for the Navy. From completing a run to making onsite adjustments, RoboBoat offers students a firsthand look at what real-life engineers go through when developing and testing Navy technologies for our Sailors and Marines."
The teams, largely composed of university students, were evaluated on their vessel design and performance. The design component focused on innovation, quality of engineering and craftsmanship; the performance challenge looked at each vehicle's ability to execute specific missions on the water.
The mandatory tasks measured propulsion, navigation and speed as the ASVs passed through a set of gates. These tasks demonstrated their visual sensor and guidance integration, speed and ability to navigate a channel. All of those tasks had to be successfully completed for any mission challenge points to be awarded.
Other challenges included obstacle avoidance, automated docking, acoustic beacon positioning, launch and recovery of an unmanned aerial vehicle from a moving boat and, finally, return to dock.
"Autonomy is a major focus for the Navy today," said Cooper. "The experiences received here provide students a crucial stepping stone in developing the skills needed to be successful in this important naval career field-these are the scientists and engineers that will undertake the fundamental research and development of our future autonomous naval systems."
As recent programs like Autonomous Swarmboats, Low Cost UAV Swarming Technology and Laser Weapon System show, autonomous and unmanned systems will address a wide range of naval functions in the future. From providing logistical support to defeating asymmetric threats to humanitarian rescue operations, these systems will provide crucial support to warfighters.
Chief of Naval Operations Adm. Jonathan Greenert has emphasized the importance of autonomy in his sailing directions.
Teams had four days of course practice to troubleshoot system issues before entering into the qualifying sessions and final round to compete for cash prizes.
Embry-Riddle Aeronautical University was this year's biggest winner, bringing home the top prize of $7,000. Florida Atlantic University won second prize and $4,000; University of Michigan took third and $3,000; and the Daytona Beach Homeschoolers came in fourth, earning $2,500. Smaller awards of $1,000 and $1,500 in various special award categories went to Electronic Engineering Polytechnic Institute of Surabaya, the University of Ulsan and the University of Florida.
The other participating institutions were Old Dominion University, Temple University College of Engineering, the Catholic University of America, Georgia Tech, National Cheng Kung University, University of Central Florida, Villanova University and the University of West Florida.


I just received one as a gift, and I have already bought one for a co-worker. They start at $45 and feature a mother caressing her womb on one side and an unborn child on the other. A portion of the proceeds go to pro-life charities. They're Canadian and a wonderful pro-life gift to give and receive at Christmas.


BOC is upping its international profile by issuing $3.8 billion bonds in multiple currencies in Frankfurt, Luxembourg, Sydney, Hong Kong and Macau.
The rarity value of an offshore bond issue from a large Chinese internet services firm has led to strong investor demand for the $5 billion paper, especially at the long end.
Panda bond issuance has picked up. It is being driven by German car manufacturers BMW and Daimler but UOB has just printed Singapore's first issue and sovereign interest remains high.
Chinese offshore property bond issuance has more than doubled this year, while the average yield-to-maturity for non-investment grade bonds in the sector has risen to its highest level ever.
A potent brew of volatile markets, inexperienced issuers and increasing competition among banks and brokerages has led to a marked deterioration in G3 bond market practices out of Hong Kong. Calls for change are growing louder.
The Lion City hopes to attract international debt investors with a mix of guarantee-backed and sovereign infra debt as it looks to fund a major expansion of Changi Airport.
Huge issuance requirements combined with a small international investor base pose unique challenges for China's big four banks as they gear up to raise billions of dollars of capital.
Asian bonds: things can only get better?
US Fed gives Asia's dollar-denominated bond markets a massive boost. But can the positive momentum continue beyond Chinese New Year?
Limited supply has caused fixed income investors to pile into the oil refining company's $900 million dollar bond – the country's largest non-bank issue in over three years.
On the back of a buoyant market, Manila doubled what it raised from a similar dollar bond sale in 2018 and was the year's first Asia sovereign borrower out of the blocks.


The owner of a college facility in Mississauga, Ontario, was recently convicted and fined almost $20,000 for hiring an unlicensed contractor to complete electrical work on site. The worker died on the job after being electrocuted while working on wiring that carried 347 volts of electricity, which had not been disconnected from power.
Occupational electrical-related fatalities and injuries are a significant and ongoing problem, according to the ESA. This risk of shock is heightened when water comes into contact with electricity. That said, as vulnerable communities across Canada continue to experience bouts of flooding, facility owners and operators are being urged to understand the proper steps to restore power after a flood, and legal requirements when hiring contractors to do electrical work.
Every year, a fatality or critical injury is reported among electrical workers. Research shows that these incidents are preventable, and the cause is usually from working on energized equipment.
When electrical rooms are located in a basement, water could rise into the components. Power must be shut off, and once the water recedes, a licensed electrical contractor, with a license number, should assess and repair damage. There is a chance wet equipment may need to be replaced. Not only will electrical systems and breaker panels need examining, but also machinery and appliances, which could cause a fire later on.
Facility occupants should not plug in or use electrical appliances that have come into contact with flood waters until the appliances have been checked or serviced by the licensed electrical contractor or appliance service provider.
Rough weather events, such as flooding, which sometimes comes with heavy rain and wind, can cause downed power lines. In the past decade, 37 per cent of all electrical-related deaths were from power line contact. Some of these incidents occurred when cleaning out debris from eavestroughs or trimming hedges, bushes and branches.
Compliance is key. In Ontario, a contractor is required to take out an electrical permit with ESA so there is a record of the work completed. Having the ESA issue a certificate of inspection provides due diligence. It ensures that work has been done according to the Ontario Electrical Safety Code, and is good mitigation for liability because a third party is validating the hired contractor's work.
ESA will inform the utility that it is safe to reconnect power and the utility will restore power when it is able to do so. After the work is done, facility staff should ask the contractor for a copy of the ESA certificate of inspection for their records and insurance.
Electricians who are already employed at a facility will still need to take out permits to complete work. Whether it's an expansion or replacement, ESA inspection rules need to be followed.
Licensing enforcement has been in effect for the past 10 years; however, ESA continues to receive complaints and implement process stemming from prosecution. Often, this enforcement deals with people who operate an electrical contracting business or who claim they are master electricians without holding a valid license (ECRA/ESA in Ontario).
Acoording to ESA, an electrical contractor needs to "prominently display" her/his ECRA/ESA Electrical Contractor Licence number in all correspondence, contracts and advertisements, on business vehicles and, generally, in all situations where they are communicating with the public. This also includes yellow page ads and websites.
ESA regularly conducts enforcement inspections and investigations, and issues administrative fees, laying of charges and prosecutions for those who choose to violate the regulations.
Hazards can include hooking up systems incorrectly and leaving the metal box energized when it shouldn't be.


National Post - Canada Day: What about June 28 as #CanadianWineDay?
Hinterland. Vicky Samaras and Jonas Newman decided to focus on sparkling wine from the start in 2007, and today make an excellent range of traditional (Les Etoiles; Rosé), charmat (Whitecap; Riesling) and ancestral (Gamay Ancestral) method bubbly. Quantities are always limited and wines sell out quickly (the popular Gamay Ancestral sold out with a couple of weeks of release), so it's imperative to move fast – I've already picked up my case. You'll also find their Whitecap on tap at Barque and Café-Bar-Pasta in Toronto, and the Wellington Gastro pub in Ottawa, the first local wine producer to offer bubbly on tap.
Vicki Samaras and Jonas Newman took over a former cow barn in 2006 to create Hinterland Wine Co. The winery focuses exclusively on sparkling wine, so it's no wonder the flagship Les Etoiles is a ringer for good Champagne. The owners of Hinterland Wine Co., housed in a former dairy barn in Ontario's Prince Edward County, crush grapes where 48 cows once made their home, crafting some of the most compelling new non-French sparkling wines I've tasted in years.
Ancestral, from Hinterland Wine Co. in Ontario's Prince Edward County, follows a tradition kept alive by old-school producers in Bugey-Cerdon, a relatively obscure appellation in the Jura mountains of eastern France. The name derives from méthode ancestrale, a technique that put fizz in French wine more than a century before the birth of Champagne as we know it.
"I finger taste a lot of my parent's wines and I think Hinterland is the best I have ever had."
"It's Nathan. I drank too much last night and the ONLY thing that will fix this is your pink bubbles. :) Are you open at 10 a.m. or 11 a.m.?"
Ontario From B.C. to Nova Scotia, Canadian winemakers are coming out with respectable and even great bubbly. Prince Edward County's Hinterland Wine Company makes products that can only be found in certain Ontario restaurants (see the list at hinterlandwine.com), which is unfortunate because they're really impressive. Les Etoiles is the most Champagne-like of the bunch by design, but the dry fruit and puckering minerals of the Riesling Traditional Method tickled my fancy. The Hinterland Ancestral is a guilelessly sweet and juicy rosé, an ideal dessert companion.
"I can drink the s**t out of this!"
"Nothing says class and sophistication like sparkling wine, and selecting a local wine of impeccable quality also shows your imagination, deep knowledge, and respect for local craftspeople."
"It is not a coincidence that 9 months after my wife and I shared a bottle of Ancestral our daughter Lily was born. When you talk to Vicki and Jonas you can hear the passion for wine making in their voices and when you drink their wine you can taste it."
"I visited your winery in august 2010. I bought 2 bottles of les etoiles and loved it as much as I love Veuve Cliquot. I opened it in honor of my mom's birthday and it was love at first taste for everyone. A year later and folks still remember that sparkling. It left a very positive first impression. I kicked my self for not buying more and was not shocked that your stock was depleated quickly."
"Ahh the lands of Trumpour, whose stony fields and brambled hedgerows dost hide the sweetest secret. Known to few, but prized by many, its nectar warms the coolest heart. A journey yes - but not so far - to know this land where wine and friends unite."
"Among the many wineries that populate Prince Edward County, Hinterland is a hidden gem that I'm delighted to have stumbled upon. Their "Les Etoiles" sparkling brut wine is nothing short of remarkable, and I look forward to becoming acquainted with the rest of their offerings. Hinterland's wines add a sparkle to the PEC wine industry like no other! I first discovered their bubbles on the wine list at Langdon Hall and have been in love with them ever since. Keep up the great work Vicki & Jonas"
"If you're looking for exceptional Sparkling wine, go to Hinterland! The dedication and love that Vicki and Jonas have for sparklers shines through in every bottle. They are masters of the traditional method, one visit is all it takes, you will no longer need a celebration to pop a bottle!"
"I received my case of Ancestral today and waited as long as I could to try it. Since it was cold outside it arrived at a perfectly chilled temperature but I decided 10am was too early! I just opened a bottle. Delicious. Delicate, slightly effervescent. Just lovely.
Do you have any more? I'd like another case if you still have some. Thanks."
Jonas Newman and Vicki Samaras, the innovative sparkling wine specialists of PEC, have made a delicious, light (seven percent alcohol), off-dry pink, gamay fizz they call "The Babymaker." Ancestral takes its more serious name from a process used in Bugey, a village along the Rhône River in eastern France. The fizz is created by capturing the CO2 of the primary fermentation (which occurs at very low temperature) to preserve the fruitiness. It's pale pink and very bright, with a fresh nose of raspberry-redcurrant fruit jam. It's medium-sweet yet delightfully fresh and pure, with a lingering redcurrant fruit. Great wine in bed — Valentine's Day or not.
Onto Hinterland to meet Jonas Newman (who worked at 13th Street) in his big silver barn. This is a new winery dedicated to making sparkling wine (a good decision for the County). Hinterland made 550 cases in 2007, 750 in '08 and 1200 in '09. Hinterland Rosé Sparkling Wine (orange-pink colour; active and plentiful mousse; a flavour of wild strawberries and redcurrants; light-bodied, very fresh and zesty (89)) and Hinterland Les Etoiles 2007 (pale straw colour; bready, apple nose; dry and elegant green apple flavour. Very crisp, light and clean (90)).
Out of their converted dairy barn in Hillier, Jonas Newman and Vicki Samaras have crafted a standout pinot noir–based sparkler. Smelling of dried cherry, peach and almond, the pale pink wine is bone dry, with typical County mineral grip and excellent flavour concentration.
The first pink sparkling bubbly from the County is a pristine effort from the region's first winery dedicated solely to sparkling wine. It radiated purity and brilliance from start to finish with great colour and a generous nose of raspberry, tea biscuit and wet stone minerality. It's light and taut with razor acidity and very good length (wanted more). Partners in life and wine, former Scaramouche maitre d' Jonas Newman and Vicky Samaras operate Hinterland in the "Benway" barn on Closson Road.


text:
Once A Month, Every Month …
Barclay Manor, home of the West End Seniors' Network.
TEA WITH ANTHONY
The first Monday of the Month (Mar. 4)
Barclay Manor
Register at 604.669.5051
Here's an opportunity to enjoy tea and conversation with West End Seniors' Network executive director Anthony Kupferschmidt. Discuss the issues impacting the organization and your life as a senior in the West End. Bring your questions, suggestions, and viewpoints -- they provide the tea and snacks.
SENIORS FIRST LAW CLINIC
Fourth Tuesday of Each Month (Mar. 26)
Kay's Place (Denman Mall)
Free / By Appointment
Call 604-336-5653 to Register
Seniors First BC offers a monthly free elder law clinic in cooperation with the West End Seniors' Network at Kay's Place in Denman Place Mall. A lawyer from Seniors First BC will be there to answer questions on elder law issues such as: wills and estates (including will variation claims); drafting of representation agreements, powers of attorney, and advance directives; small claims court issues; complaints against professionals, service providers, and government agencies; elder abuse, including financial exploitation (unpaid family loans, misuse of power of attorney, joint accounts, etc.).
Seniors First BC lawyers are unable to advise with respect to real estate conveyancing, family law or criminal law matters. Please call Seniors First BC at 604-336-5653 to book an appointment.
WEST END SENIORS' COMMUNITY PLANNING TABLE
Last Friday of each month (March 29)
10 a.m. to 12 noon
St. Andrew's Wesley Church (1018 Nelson)
The monthly Seniors' Community Planning Table is an opportunity for West End seniors, community organizations, and service providers to connect and share information and views on issues important to seniors in our community. Each month's agenda includes updates on West End programs for seniors, a keynote speaker, and discussion on a topic of interest to West Enders.
For information on this or upcoming month's topics and speakers, contact Sharon Isaak at isaaksharon@gmail.com or 604.880.2743.
There's a party for your birthday coming up!
A PARTY FOR YOUR BIRTHDAY
Third Monday of Each Month (March 18)
Barclay Manor (1447 Barclay)
2 to 3 p.m.
Reservations at 604-669-5051 or programs@wesn.ca
Are you a member of the West End Seniors' Network ... and if you're a senior and aren't a member, why not? During the month of your birthday, you and a guest are invited to celebrate your special day with others whose birthday fall in the same month.
Join the party for tea, birthday cake and live music.
ENGAGEMENT QUESTION OF THE MONTH
The West End Seniors Network (WESN) has a question for you. In fact, they have a new question every month, designed to stimulate conversations, ignite ideas, and bring the community together. Your answers will also help WESN in planning their programs, activities, and services in the future.
March's question is "Where would you like to go if WESN organized out-trips? For example, Vancouver Art Gallery, Science World, Queen Elizabeth theatre, etc." and you can answer by writing your response on a sheet of paper located in the Fireside Room at Barclay Manor, or online here.
SENIORS' LOUNGE
Gordon Neighbourhood House
An informal gathering where you can catch up with old friends, make new ones, and get to know the neighbours. There will be coffee, cookies, and conversations. Bring a joke and share a smile!
AT THE MOVIES - BARCLAY MANOR
Mondays, Tuesdays, & Fridays
Barclay Manor / Piano Room
By Donation (Popcorn Included)
West End Seniors' Network hosts three movie series each month, with a screening one one Monday each month, and every Tuesday, and Friday. March's schedule includes:
Monday, Mar. 11: The Leisure Seeker (2017), starring Helen Mirren, Donald Sutherland, and Christian McKay 1 hr 52 min.
Catch Sidney Poitier and Rod Steiger in In The Heat of the Night, screening March 12 at Barclay Manor.
Mar. 5: The Sound of Music (1965) with Julie Andrews and Christopher Plummer. 2 hr 50 min.
Mar. 12: In The Heat of the Night (1967) with Sidney Poitier and Rod Steiger. 1 hr 50 min.
Mar. 19: The Lady Eve (1941) with Barbara Stanwick and Peter Fonda. 1 hr 34 min.
Mar. 26: Cool Hand Luke (1967) with Paul Newman, Dennis Hopper, and George Kennedy. 2 hr 6 min.
Mar. 1: Room (2015) with Brie Larson, Jacob Tremblay, and Joan Allen. 1 hr 57 min.
Mar. 8: Charlie and the Chocolate Factory (2005) with Johnny Depp, Freddie Highmore, and David Kelly. 1 hr 54 min.
Mar. 15: The Fighter (2010) with Mark Wahlberg, Christian Bale, and Amy Adams. 1 hr 55 min.
Mar. 22: The Matrix (1999) with Keanu Reeves, Laurence Fishburne, and Carrie-Anne Moss. 2 hr 16 min.
Mar. 29: Indiana Jones and the Temple of Doom (1984) with Harrison Ford, Kate Capshaw, and Amrish Puri. 1 hr 58 min.

redpajama_set_name: RedPajamaCommonCrawl


Genomic Perspective on Multivariate Variation, Pleiotropy, and Evolution.
Home » Topics » Genomics » Research » Genomic Perspective on Multivariate Variation, Pleiotropy, and Evolution.
Summary of "Genomic Perspective on Multivariate Variation, Pleiotropy, and Evolution."
Multivariate quantitative genetics provides a powerful framework for understanding patterns and processes of phenotypic evolution. Quantitative genetics parameters, like trait heritability or the G-matrix for sets of traits, can be used to predict evolutionary response or to understand the evolutionary history of a population. These population-level approaches have proven to be extremely successful, but the underlying genetics of multivariate variation and evolutionary change typically remain a black box. Establishing a deeper empirical understanding of how individual genetic effects lead to genetic (co)variation is then crucial to our understanding of the evolutionary process. To delve into this black box, we exploit an experimental population of mice composed from lineages derived by artificial selection. We develop an approach to estimate the multivariate effect of loci and characterize these vectors of effects in terms of their magnitude and alignment with the direction of evolutionary divergence. Using these estimates, we reconstruct the traits in the ancestral populations and quantify how much of the divergence is due to genetic effects. Finally, we also use these vectors to decompose patterns of genetic covariation and examine the relationship between these components and the corresponding distribution of pleiotropic effects. We find that additive effects are much larger than dominance effects and are more closely aligned with the direction of selection and divergence, with larger effects being more aligned than smaller effects. Pleiotropic effects are highly variable but are, on average, modular. These results are consistent with pleiotropy being partly shaped by selection while reflecting underlying developmental constraints.
Pleiotropy, cooperation, and the social evolution of genetic architecture.
Genome-wide regulatory adaptation shapes population-level genomic landscapes in Heliconius.
Human Genetics: The Evolving Story of FOXP2.
Multiple genomic regions influence root morphology and seedling growth in cultivated sunflower (Helianthus annuus L.) under well-watered and water-limited conditions.
A set of techniques used when variation in several variables has to be studied simultaneously. In statistics, multivariate analysis is interpreted as any analytic method that allows simultaneous study of two or more dependent variables.
Contiguous large-scale (1000-400,000 basepairs) differences in the genomic DNA between individuals, due to SEQUENCE DELETION; SEQUENCE INSERTION; or SEQUENCE INVERSION.


U.S. Equity Sell-Off Making the Fed's Interest Rate Hike a Moving Target?
It is estimated that 8 trillion U.S. dollars have evaporated earlier this week from global equity markets since the decline triggered by the China's currency devaluation a couple of weeks ago. There had been an unusual calm prevailing in the markets throughout this year up until recently. However, there were signs of a loss in momentum as the S&P 500 Index had been in a range trading at oversold levels prior to the sharp decline, while only less than 30 percent of the stocks in the Index were trading above their 50-day moving average.
The catalyst that eventually lead to a massive, top down, panic selling, causing the S&P 500 to enter a correction mode for the first time since 2011, was China's currency devaluation followed by similar actions from other emerging markets, as discussed in our previous article.
The Shanghai Composite Index lost half of its value since the middle of last June after a renewed sell-off on Wednesday, even after the People's Bank of China (PBOC) further cut borrowing costs as well as lenders' reverse ratios, recording its steepest five-day loss since 1996. It did manage however, to recover some of its losses as it rose by 5 percent to 3,083 yesterday and nearly by an additional 5 percent today, climbing up to 3,232. Even though in the past there was not much correlation between China and the rest of the equity markets, the contagion spreading into global markets during the last few days indicates a major shift towards strong recoupling, especially with the U.S. market, suggesting that it could eventually derail domestic economic growth.
While this correction may have just been a repricing process which will eventually bring asset prices lower and closer towards fundamentals, markets potentially have plenty of room to drift much lower towards levels where value will be created when the market finds a bottom. Following the hugely abrupt fall of last Monday and Tuesday, the S&P 500 had the most impressive 2-day rally since 2009 during the last two session, however it remains to be seen if the recovery from the lows is sustainable. The two main factors for this remarkable recovery of the last two days have been: (1) the comments of the President of the New York Federal Reserve, William Dudley, that the decision to begin rising interest rates during September's FOMC meeting now seems less compelling than it appeared to be a few weeks ago, (2) a better than expected GDP figure of 3.7 percent for the U.S. economy was reported yesterday, exceeding all analysts' expectations.
The volatility during last night's session has been quite remarkable, however, with stocks rallying during the first half of the session on the back of the good news for the U.S. economic growth, then taking a dive around midday and rallying again during the last hour to end up 2 percent higher. If this spike in volatility endures in the medium term, it could potentially cause a deterioration in the trend, shifting it from bullish to neutral bearish. From a technical analysis point of view, the important level of 1,940 for the S&P 500 being the 61.8 percent Fibonacci retracement level from the 1,820 low of October 2014 and the May 2015 high of 2135, must be kept intact.
In fact, on Wednesday night the Index managed to close exactly at the 1,940 level and eventually climbed even higher last night up to 1,987, however it must remain above the 1,940 level, in order to preserve the uptrend that began last October.
So how is all this correlated with the Fed's plans to raise interest rates? Although Fed officials do not like to link their actions to the equity market situation but rather focus on domestic growth, solid employment and inflation outlook, the correlation between China's economic policy actions and those of the rest of the emerging markets and consequently the U.S., is becoming more evident.
The case for raising interest rates appear to be a moving target these days as global market volatility and nervousness returns, starting from China and spreading over the emerging markets region and subsequently the developed world, making the U.S. rate hike argument difficult to defend. Economic shock is coming from the emerging world and not from the U.S. or Europe, therefore the question is whether the proper policy circuit breakers are in place to halt further declines as markets now mainly rely on PBOC to take all policy actions rather than the Fed or the ECB. The state of the U.S. economy still seems to be intact especially after yesterday's GDP figures, however a spill-back from the global/emerging economies' financial disruption to the economic performance and stability of the developing world, will ultimately hurt the U.S. economy as well.
Even though raising rates from near zero levels would offer the Fed the necessary ammunition for reacting against future crises, acting so prematurely could prove to be a huge mistake. There are great examples of rate hike failures in the past fifteen years, such as those of Japan in 2000, Sweden in 2010 and ECB in 2011. Furthermore, fifteen central banks out of the 34 countries included in the Organization for Economic Cooperation and Development (OECD) that increased interest rates since the financial crisis of 2008, were forced to reduce them afterwards.
In the case of the Fed, there was a window of opportunity for raising interest rates up until three weeks ago while conditions were still favorable: a strong domestic U.S. economy, a global economy in a neutral state and the financial markets enjoying a state of calm and stability. This window now seems to have been shut at least for the time being, as the second and third factors are no longer in place. The Fed will therefore probably postpone raising rates next month as it runs the risk of completely destabilizing the global financial system. In fact, the market consensus now suggests that traders will see a 28 percent probability of a rate hike next month and 51 percent in December, warning that it would be a big mistake for the Fed to take such an action in the near future.
In summary, there definitely has been a climactic change with the return of stock market volatility over the last few days. It may be too soon to predict at which level the dust will settle as there is a high possibility that the markets will retest the lows recorded earlier this week. However, such big stock market movements in the past have been connected to major recessions and the Fed needs to take into account this psychological factor. On the other hand, Fed policymakers have a priority to create a cushion that would enable them to cut rates in the future in case the economy needs it, therefore they face a huge dilemma going forward.


Tips on Workplace Violence Prevention in Commercial Real Estate.
With stories of mass shootings at office buildings becoming increasingly commonplace, the issue of workplace violence is getting harder and harder to ignore. Whether it's at a high-profile location like the Capital Gazette in Maryland or a seemingly unassuming software firm in Wisconsin, it's easy to see that workplace violence doesn't discriminate.
The statistics back it up. According to the Occupational Safety and Health Administration, nearly two million U.S. workers are victims of workplace violence each year, and an FBI study identified that businesses were the setting for nearly half of 160 active-shooter incidents over a 13-year period examined by the agency.
In light of all the incidents in the news, do you think this is a topic that the average building owner or manager is talking about now?
RN: If not, they should be. I think more people are beginning to understand that the issue of workplace violence is very important, a growing epidemic, and that it does not discriminate. Employers not only have a legal responsibility, but a moral one as well. When an incident happens, organizations opens themselves up to possible litigation where employees seek to sue employers for not providing a healthy and safe work environment. That safe and secure work environment starts from the moment you park your car on property. When people don't feel safe, it can affect their state of mind, which in turn affects productivity and can have a negative impact on the organization's bottom line. That is why it is critical that people and organizations focus on preventative measures. Small but important aspects of those preventive measures are lighting, security cameras, visitor management systems, access control, door locking systems, entrance and egress, holistic and collaborative team approach with leadership involvement.
RN: It all starts with identifying and mitigating risk. Start from the outermost portion of the property, in the parking lot, for example, and assess it not only during the day, but at night as well. Is the exterior lighting adequate? Is it working? Is it adequate enough to protect employees? Are there security cameras and are they working? If so, is the system antiquated? Are there hiding spaces such as hedges where bad guys can be? Is there tailgating [when people let others enter the building behind them]? Is there any type of access control?
It's also important to have internal conversations with all key stakeholders about their concerns. It starts at the top with senior leadership, human resources, legal, safety, training, and yes, the employees. It's not just the property manager who is responsible.
What are some of the common problems you've seen when visiting buildings?
RN: Well, the most common problem is that they have nothing in place at all because their mindset or culture feels that nothing will ever happen to them. More often than not, we discover inadequacies in many areas. Or sometimes we see systems that are set up that perhaps create a false sense of security. For example, we recently visited a building that seemed to be doing some good things. They had a very good visitor management system where we had to sign in, have our pictures taken and badges issued. There were security cameras in the lobby. However, after a few soft questions, we learned the security cameras didn't work. Businesses sometimes think just having cameras is a deterrent, whether working or not, but if they're not working properly, it's worse than not having them at all, both legally and morally.
Considering what we know about the prevalence of workplace violence, do you see things getting better from a building design and personal awareness standpoint?
RN: Not even close, but I'd like to think we are getting better. But getting better at security awareness only comes from a mindset shift which comes from training, rehearsals, more training and more rehearsals. Many times, you'll see people talking more about safety and security right after a terrible incident happens, but then time goes by, nothing comes to fruition, and it goes onto the back burner. There needs to be more of a level of security awareness built into today's culture.
As for building design, some tenants are stuck with existing building design where they have to make do the best they can from a security standpoint, but much can be done. For example, ID Plans offers one of the most comprehensive and detailed software-based solutions I've seen. ID Plans' offerings are an incredible one-stop-shop for all critical information a property manager could wish for. The information is highly accurate and relevant. For example, building design layouts can be exported to emergency responders via PDF, be it a fire or active shooter incident. This critical information is an invaluable resource made readily assessable. As for new building design, security professionals refer to what's called Crime Prevention through Environmental Design or CPTED. When CPTED is put into practice, the resulting environment – including the building and its surroundings – will discourage or impede criminal behavior, and at the same time encourage honest citizens to keep a watchful eye.
What would an ideal office building look like to you, security-wise?
The answer here is really dependent upon the organization's vulnerabilities and risks which in turn would drive the security infrastructure for each building. However, to provide some examples, organizations might want to consider proper exterior and interior lighting. Perhaps there would be one point of entry for most employees and vendors, along with a visitor management system at that entrance. Also, a security-minded company might have access control systems in place, entry card readers, and biometrics, emergency response plans and notifications systems for fire, active shooter and the like. Alarms would be set up so employees can differentiate between fire and active shooter situations. Lastly, a software-based solution like ID Plans to assist with security and emergency action protocols would be very beneficial for facilities or property managers.
What about the human elements that can contribute to safety risks? How do those figure in?
It's very important to make employees understand that security is a shared responsibility, and if they see something, they should say something! It's not enough to just have security infrastructure in place; the human element is extremely important.
How can you get the ball rolling without becoming too overwhelmed?
Developing a sound comprehensive workplace violence program can be somewhat of a monumental task. But you must start somewhere, and using a phased approach is better than doing nothing at all. People have a right to feel safe. When they observe positive changes being made to protect them in the workplace, it helps to foster trust, and it's a great way to set your organization up for success.
ID Plans provides the tools to help you manage your properties and contribute to the safety of the people who work there. Please contact us at sales@idplans.com for a demo.


BEIJING - The wife of ousted Chinese politician Bo Xilai and a family aide have been charged with the murder of a British businessman, the government said Thursday, pushing ahead a case at the center of a messy political scandal that exposed divisions in China's leadership.
The official Xinhua News Agency reported that the prosecutor's indictment said Bo's wife, Gu Kailai, had a falling out with Briton Neil Heywood over money and worried that it would threaten her and her son's safety. Gu and the aide, Zhang Xiaojun, are alleged to have poisoned Heywood together, the report said. Heywood's death in November was attributed initially to a heart attack or excessive drinking.
The brief report is the first official news that the case against Gu is proceeding since the announcement three months ago that she and Zhang were being investigated and that Bo was being suspended from the powerful Politburo for unspecified discipline violations. The Xinhua report did not mention Bo's case or a separate party investigation into Bo.
In a sign that the release of the news was carefully controlled to minimize public discussion, Xinhua's report was not mentioned on state broadcaster China Central Television's nationwide evening news program.
On the Internet, the Xinhua report was carried on official mainstream news sites but any mention of it appeared to have been scrubbed off popular microblogs, where Bo and his wife's names remain banned search terms. Commenting was disabled on most sites that carried the Xinhua report, while other webpages only allowed comments in support of the prosecution.
The scandal exposed the bare-knuckled infighting that China's secretive leadership prefers to hide and affirmed an already skeptical public's dim view about corrupt dealings in the party.
Before his ouster, Bo was one of China's most powerful and charismatic politicians. The son of a revolutionary veteran, Bo was seen as a leading candidate for a position in the Politburo Standing Committee, the highest ranks of power, when a younger group of leaders is installed later this year.
On his rise, Bo led high-profile campaigns to bust organized crime and to promote communist culture. In doing so, however, his administration ran roughshod over civil liberties that angered some leaders and alienated others with his publicity seeking.
Gu and Zhang were charged in the eastern city of Hefei, Xinhua said. It did not say when exactly the indictment was issued or when the crime occurred and why the case is being prosecuted in Hefei and not in Chongqing, the metropolis Bo ran as Communist party secretary and where the couple lived.
Prosecutors have interrogated Bo and Zhang and have "heard the opinions" of their defense lawyers, Xinhua said.
"The facts of the two defendants' crime are clear, and the evidence is irrefutable and substantial. Therefore, the two defendants should be charged with intentional homicide," the report said.
The report referred to Bo's wife as "Bogu Kailai," an unexplained combining of their last names. It did not name their son, but they have only one, Bo Guagua.
The scandal was sparked by Bo's police chief Wang Lijun's shocking visit to a U.S. Consulate in the nearby city of Chengdu in January, where he is thought to have told the Americans about Bo's transgressions and his concerns over Heywood's death.


Renault has published official information and pictures of its newest concept: Frendzy. The prototype seeks to combine the family side of a car with an utility vehicle full of gadgets and wants to be the concept from which will arise the future Kangoo.
As promised, Renault came back with details and official images of new Frendzy, the fourth study design thought by Laurens van den Acker, the creative man from Renault. The official communique stated that Renault Frendzy is trying to keep place of a true companion, which can combine professional and personal life.
The two uses of the concept are highlighted by asymmetric bodywork. On the left is highlighted the family side of the model, with an opposite opening of the doors. On the right side, Renault Frendzy comes with a sliding rear doors opening, evoking the utility side of the vehicle.
Another difference created by the usage patterns is positioning of the rear view mirrors. When used for freight transport they are upright. When Renault Frendzy becomes a family car, it uses the mirrors horizontally, giving to the interior ambient an orange light.
One of the designers who worked on the project claims that commercial vehicles can have an emotional side. Renault Frendzy's architecture was influenced by the famous aircraft cockpits as Airbus Beluga and Antonov 224.
The main gadget of the electric concept is a 35 inch digital screen that can be fixed on the sliding glass door when the utility vehicle driver intends to leave short messages such as "Returning in 5 minutes." In the weekend when Renault Frendzy becomes a family car, the touch screen can be turned in to a tablet by the passengers from the rear seats.
Also when speaking of gadgets should be noted that Renault Frendzy uses the BlackBerry PlayBook Tablet, recently introduced on the market, with a portable design, a 7-inch touch screen and a processor favoring Internet traffic. The BlackBerry Tablet is positioned on the center console in the driver's armrest, which can also be used as the main instrument of evidence during its transport activities as well as a control panel for the rear touch screen display.
As expected, Renault Frendzy adopts an electric propulsion engine, similar to that from Kangoo ZE, but with a power supply socket positioned frontal identical to that of Zoe. The engine develops 60 horsepower and a torque of 226 Nm, sufficient resources to propel the concept to a speed of 130 km/h.
The novelty is the variety of sounds that Renault Frendzy can emit when running in order to warn pedestrians of its presence. As you may guessed, sounds differ depending on the concept's mission: utility or family.


Matthews Specialty Vehicles offers a full line of Bloodmobile platforms to fit any blood center's needs. From a versatile compact truck style to a high capacity slide-out Coach model.
The Matthews Coach Style Bloodmobile featuring flat floor room slideout technology is available in lengths up to 45 feet. Matthews has pre-engineered a variety of configurations to meet the needs of even the busiest donation collection stop – with our largest coach featuring enough room to comfortably fit up to 7 donor beds, 3 History rooms, and 4 room slideouts.
Ask about efficient truck style bloodmobiles layouts with 2 donor beds and 1 history room, up to a large coach bloodmobile with 7 donor chairs and 3 history rooms.
To get started adding a new bloodmobile to your fleet contact Matthews today! Our team of blood donor vehicle specialist will help you design the most state-of-the-art blood collection vehicle – the best member of your bloodmobile fleet!


Repnice Wine Cellars are definitely Slovenia's most awe-inspiring wine attractions which can be found in Bizeljsko region, south eastern part of Slovenia.
Under radar Bizeljsko region, area of hills, vineyards and one of the kindest climates in the country, was once lying on the coast of the ancient Pannonian Sea. When the waters withdrew 2 million years ago, large deposits of sandstone remained. Flint sand, a left-over reminder of the Panonic see, formed thick layers of flint stone which is a crucial material that made the construction of the tunnels possible.
200 years ago local farmers started hand digging into the crystalline sandstone with basic tools (hack, shovel, wheelbarrow, scraper) and construct the tunnels underground. Excavated material was used for building houses. Underground caves were used for storing farm products (fruits, veggies, meat, liquers, etc.), including turnips over the long winters. Turnip or repa in Slovene language was the main forage for livestock over the winter. Products that were stored in repnice kept the freshness untill the new harvesting. Back then refrigirators were not invented yet. These underground cellars are known as repnice (turnip caves). Repnice caves, the monuments of past, are nowadays used as wine cellars with amazing decorations on the sand ceilings and walls. You can spot a rabbit, kangaroo, bat, male face and female act. It is important that the ceiling is in the form of vault because of the load capacity.
Many winemakers from Bizeljsko region discovered that the temperature and the humidity of repnice, unique form of local below-ground construction, are ideal for wine storage. They converted them into a place for macerating, storing and tasting excellent local wines. Around 200 turnip caves were "constructed" under the hillsides of Bizeljsko while today less than 100 remain while only 5 repnice wine cellars are open to the public.
Experience repnice cellars, ethnology gem in Bizejsko region with at least 2 centuries long tradition which was revived in the last couple of decades.
Interesting fact: the first touristy wine underground cellar opened to the visitors, the deepest and the mightiest repnica with 3 levels.
Interesting fact: the Balon "repnica" cave served as a hideout during WW2 due to exceptional underground system of trenches.
Interesting fact: the nicest repnica in Bizeljsko region due to its natural graffiti.
Interesting fact: they still use repnica to store farm products.


text:
Home > Books > Childrens & Young Adult > The Wizard of Oz > Oz, the Complete Collection, Volume 3: The Patchwork Girl of Oz; Tik-Tok of Oz; The Scarecrow of Oz - L. Frank Baum
Oz, the Complete Collection, Volume 3: The Patchwork Girl of Oz; Tik-Tok of Oz; The Scarecrow of Oz - L. Frank Baum
Item# 85495NT
Release date March 5, 2013
Explore the wonder of Oz in this collection of books seven through nine in L. Frank Baum's classic American fairy tale series.
The seventh, eighth, and ninth titles of the iconic Oz series, now in one collection!
In "The Patchwork Girl of Oz," the Munchkins Unc Nunkie and Ojo the Unlucky call on the Crooked Magician, who introduces them to his latest creation: a living girl made out of patchwork quilts and cotton stuffing. But when an accident leaves beloved Unc Nunkie a motionless statue, it is up to Ojo to save him. Can the mighty Wizard of Oz help?
In "Tik-Tok of Oz, " Betsy Bobbin and her loyal mule, Hank, wash up on the shores of an unknown fairyland during a storm. There they meet the clockwork man Tik-Tok and find themselves trapped in a battle with the king of the Nomes.
In "The Scarecrow of Oz," Cap'n Bill and Trot journey to Oz and, with the help of the Scarecrow, overthrow the cruel King Krewl of Jinxland, who has been busy gathering an army for an invasion of Oz. Will they be able to stop the invasion?


text:
bj-blog | bj-sleaze
By Brooke Fox | December 1, 2022
Brooke's 60 Second Sleaze (12/1/22)
The trailer for "Cocaine Bear" is out, and it looks amazing. It's based on a TRUE STORY of a coke shipment that gets tossed out of a plane, and a bear making the most of it [SCROLL DOWN FOR NSFW TRAILER & locally news story about the real "cocaine bear"]
The GMA tea! MARRIED "Good Morning America" anchors have been secretly dating each other for months! They have been married to their spouses for 12 years…no word on if divorce is on the horizon.
"People" magazine's PEOPLE OF THE YEAR are Matthew McConaughey, "Abbott Elementary" creator Quinta Brunson, Jennifer Hudson, and Mila Kunis
VIDEO: Courteney Cox photobombed fans who were having their picture taken on the "Friends" couch and their reactions are AMAZING!
Spotify's 2022 WRAPPED ….Drake was the most-streamed artist in the U.S., while Bad Bunny was the most-streamed globally. Harry Styles' "As It Was" was the most-streamed song in the country and globally. Pretty sure "Brooke & Jeffrey in the Morning" was the most streamed Podcast (Do not fact check)
Prince Harry and Meghan Markle share DRAMATIC TRAILER for Netflix show
VIDEO: People think that "Stranger Things" star Noah Schnapp "forgets he's a celebrity" after video of him winning $50 on his college campus goes viral!
Kim Kardashian REJECTED an offer from Balenciaga to do a 2023 campaign before publicly lashing out at them
Vocalist and keyboardist for Fleetwood Mac, Christine McVie, DIED yesterday at 79
Anya Taylor-Joy ,26, drove a car for the FIRST TIME on the set of "Mad Max: Furiosa", "I don't have a license, I can't parallel-park, I can't go on the highway."
VIDEO: Chevy Chase channeled Clark Griswold to help light a massive Christmas display at a Raising Cane's restaurant in Chicago
Sam Smith TEASES his new single, "I'm Not Here to Make Friends"
VIDEO: The cutest video of Chris Hemsworth and his son skateboarding
Al Roker was RUSHED BACK to hospital 24 hours after being released, "His condition was worrying, but once back in the hospital he improved."
PODCAST: Win Brooke's Bucks (02/08/23)
PODCAST: What's On Your Mind? (02/08/23)
Second Date Update PODCAST: The Truth Will Set You Free
Phone Tap PODCAST: Too Hot For Hot Yoga
PODCAST: Laser Stories (02/08/23)
PODCAST: Shock Collar Question of the Day (02/08/23)
Brooke's 60 Second Sleaze (2/8/23)
Phone Tap PODCAST: Vertical Zone
PODCAST: Care Or Don't Care (02/07/23)


text:
Q: Pidgin will not connect to MSN any longer About 3 weeks ago, pidgin stopped connecting to the MSN network and I get the "Connection error from Notification server:
Connection refused" message. This issue occurs in both my Ubuntu 12.04 machine and my WIn7 machine. Trillian on my windows machine connects just fine to MSN, so I dont suspect a network issue.
My settings are: messenger.hotmail.com
Port: 1863
Proxy type. Use environmental settings
The "use HTTP method option results in it actually trying to connect, but it never does, it just says "connecting.....". I have attempted to change just about every other setting, with no luck.
What could be going on?

A: If I were to guess, I'd say it stopped working slightly more than 6 weeks ago, when the MSN messenger network was closed down, so I don't know what Trillian is connecting to.
Microsoft wants you to move to skype, which is available for ubuntu, and you should be able to log in using the same microsoft account and find all your friends still there.

A: Microsoft keeps shutting down "unofficial" methods of access and
applications - of which Pidgin is one.
Pidgin developer describes the issue https://pidgin.im/pipermail/support/2015-January/028600.html
!There is an workaround!
skypeweb plugin for allows to use MSN account.
Contacts and messages service are available.
How to set up

*

*Build and install SkypeWeb Plugin for Pidgin:
sudo apt-get install libpurple-dev libjson-glib-dev cmake gcc
git clone git://github.com/EionRobb/skype4pidgin.git
cd skype4pidgin/skypeweb
mkdir build
cd build
cmake ..
cpack
sudo dpkg -i skypeweb-1.4.0-Linux.deb

(correspond to https://github.com/EionRobb/skype4pidgin/tree/master/skypeweb instruction)

*Login into https://web.skype.com/ (Once, for activation skype web)

*Open Pidgin. Create an account for Skype(HTTP) protocol

Information about current situation with MSN
ismsndeadyet.com site says:
Update 2017/08:

The servers that implemented MSNP21 and MSNP22 are gone, two years after
  MSNP18 and all the other versions were discontinued.
  MSNP24 still works, but it uses different servers and was (is?) primarily
  used by skype clients. So for the purposes of this status page, MSNP24 is
  skype, not MSN.

Update 2016/02:

The MSNP18 protocol and all the older versions are gone. MSNP21/22/24
  are still there.
  Most clients still don't implement newer versions. Some are listed on
  the right column.

redpajama_set_name: RedPajamaStackExchange


Our website provides solved previous year question paper for DIPLOMA. Doing preparation from the previous year question paper helps you to get good marks in exams. From our PSBTE question paper bank, students can download solved previous year question paper. The solutions to these previous year question paper are very easy to understand.
Punjab State Board of Technical Education and Industrial Training (PSBTE & IT) is an autonomous statutory authority created under The Punjab State Board of Technical Education & Industrial Training 1992 Act for regulating and controlling academic standards in Institutes of Technical Education and for making admissions & conducting examinations in Polytechnics and Industrial Training Institutes located in the state of Punjab and Chandigarh.


text:
You are here: Home / Archives for Mike Sherman
Rodgers, Adams lead Packers past Eagles
December 7, 2020 By Bill Scott
Packers RB Aaron Jones
Aaron Rodgers passed for 295 yards and three touchdowns and Davante Adams caught 10 passes for 121 yards and two scores to lead the Green Bay Packers to a 30-16 win over the Philadelphia Eagles on Sunday at Lambeau Field.
The second of Adams two touchdown catches was a 9-yard, catch and run, stiff-arming Eagles corner Darius Slay for the final five yards, was the 400th of Rodgers career. The Packers superstar signal caller became the quickest quarterback in NFL history to reach 400 career touchdown passes, reaching the milestone in his 193rd game. New Orleans Saints quarterback Drew Brees needed 205 games to reach 400.
Rodgers three touchdown passes gives him 36 for the season, his fifth season with at least 35 touchdown passes. No other quarterback in NFL history has accomplished that feat.
Rodgers doesn't have any of his previous century-mark touchdown balls. Hours before kickoff, Adams made sure all of the receivers/running backs knew that the game ball used for 400, would go right to Rodgers.
Adams, who finished with 997 receiving yards for the second time in his career last season, surpassed the 1,000 yard mark to go along with 13 touchdowns and still has four more games left in the regular season. To make those numbers even more impressive, Adams missed 2 1/2 games with an ankle injury. [Read more…]
Filed Under: Packers, Sports, Titletown Report, Top Story Tagged With: Aaron Jones, Aaron Kampman, Aaron Rodgers, Davante Adams, Green Bay Packers, Kingsley Keke, Matt LaFleur, Mike McCarthy, Mike Sherman, Za'Darius Smith
Packers plan to hold joint practices in training camp
March 26, 2019 By Bill Scott
Matt LaFleur
New head coach Matt LaFleur's first training camp as the Green Bay Packers new head coach will include holding joint practices with a preseason opponent in Green Bay.
LaFleur told Pete Dougherty-Packers News at the NFL owners meeting today that the Packers opponent in their preseason opener would be the team expected to practice with the Packers.
LaFleur said his teams of the last two years, the Rams and the Titans, practiced against another team in camp for a couple of days. He said he found it to be a good way to get starters working against starters without wearing his own players down.
The last time the Packers held joint practices was 2005, when former coach Mike Sherman brought the Buffalo Bills to Green Bay.
Filed Under: Packers, Sports, Titletown Report Tagged With: Green Bay Packers, Matt LaFleur, Mike Sherman, NFL
Sherman out of the running in Tampa Bay
January 26, 2012 By Bill Scott
The Tampa Bay Buccaneers have finalized a 5-year deal with Rutgers' coach Greg Schiano to become the teams next head coach.
Former Packers coach Mike Sherman was scheduled to meet for a second time with the Buccaneers yesterday but is out of the running.
The 45-year-old Schiano has been an assistant coach in the NFL with the Chicago Bears from 1996-98. He's coached the Scarlet Knights for 11 years, leading the program to winning seasons in 6 of the last 7 seasons.
The Bucs fired Raheem Morris after a 4-12 record that included 10-straight losses.
There's a chance that Sherman could still become the offensive coordinator in Miami under new Dolphins coach Joe Philbin.
Filed Under: Packers, Sports Tagged With: Green Bay Packers, Joe Philbin, Mike Sherman
Packers are nearly out of the woods with coaching staff
Mike Sherman is reportedly interviewing for a second time with the Tampa
Mike Sherman
Bay Buccaneers with regards to their head coaching vacancy.
The Oakland Raiders are set to hire Denver Broncos defensive coordinator Dennis Allen.
Indianapolis appears to be going in a direction that doesn't include any Green Bay Packers assistant coaches, which means the chances of Mike McCarthy losing any more of his assistant coaches is diminishing.
A number of teams still have coordinator positions open, but Allen's hiring in Oakland means Dom Capers and Winston Moss, who both interviewed for the Raiders opening, will be returning to Green Bay for now.
McCarthy and his coaching staff is currently in Hawaii, preparing the NFC squad for this weekends Pro Bowl. Practices are scheduled to begin today. Six Packers will play for the NFC squad with John Kuhn sitting out because of a knee injury he suffered in the Packers season ending loss to the New York Giants.
Filed Under: Packers, Sports Tagged With: Dom Capers, Green Bay Packers, Mike McCarthy, Mike Sherman, Winston Moss
Capers, Moss, Sherman still in NFL coaching hunt
Green Bay Packers defensive coordinator Dom Capers is the latest to talk with
Dom Capers
new Oakland Raiders general manager Reggie McKenzie about the Raiders head coaching vacancy.
Packers linebackers coach Winston Moss has also talked with McKenzie, who is taking his time, trying to find the right man for the job.
Oregon coach Chip Kelly has pulled his name out of the Tampa Bay Buccaneers coaching search. That means former Packers coach Mike Sherman will likely get a second interview in Tampa.
Joe Philbin's departure for Miami means the Packers are looking for an offensive coordinator. Many expect Mike McCarthy to promote quarterbacks coach Tom Clements from within for that job.
There could be a lot of shuffling on Mike McCarthy's coaching staff, but the Packers coach seems to welcome the change for some of his coaches, keeping them challenged in the offense. An example of that would be moving Edgar Bennett last season from running backs coach to his current post at wide receiver.
Filed Under: Packers, Sports Tagged With: Dom Capers, Green Bay Packers, Joe Philbin, Mike Sherman, Tom Clements


The Deputy Minister for Health, Tina Naa Ayeley Mensah has urged unemployed private nurses to desist from picketing to demand employment as their action does not move the Ministry one bit.
Speaking to Bola Ray on Starr Chat on Starr FM Wednesday, Hon. Tina Mensah who's also MP for Mallam Gbawe stated that government only does the private nurses favour by employing them so they should desist from giving unnecessary pressure.


text:
Cognitive Dissonance · Controversy · Corruption · Crime
The Cast Of Characters Surrounding Trump Is Starting To Look A Lot Like A B-Movie Version Of HBO's The Sopranos
May 23, 2018 by Samuel Warde No Comments
The phrase "dime store hoodlum" comes to mind when taking a look at some of the characters/co-conspirators surrounding Trump.
It seems that in draining the swamp, Trump has managed to unearth characters right out of a Hollywood B-Movie version of "The Sopranos."
Anthony Scaramucci, knighted "The Mooch" by the media, was an all-time favorite. He rose to glory out of nowhere only to be quickly dispatched to some other swamp never to be heard from again (or so we all wish).
Turning the clock back to the time of Francis Ford Coppola's "The Godfather" movie franchise, there are several contenders to play the part of Fredo Corleone – you know, from that memorable scene from The Godfather, Part II:
Fredo Corleone: I'm your older brother, Mike, and I was stepped over!
Michael Corleone: That's the way Pop wanted it.
Fredo Corleone: It ain't the way I wanted it! I can handle things! I'm smart! Not like everybody says… like dumb… I'm smart and I want respect!
Sean Spicer was the original White House Fredo – but alas, he only lasted 182 days. Sarah Huckabee Sanders stepped in, lasting 300 days and counting as of Tuesday night [May 22, 2018].
A new favorite is Michael Cohen's close business partner, who is reported tonight to have flipped and joined the ever-growing list of songbirds cooperating with the feds. This one even comes with his very own gangster name already – "The Taxi King," as reported by NBC News.
A business partner of Trump lawyer Michael Cohen known as the Taxi King has agreed to cooperate with the government as part of a plea deal, according to a person with direct knowledge of the proceedings.
Evgeny Freidman, 47, pleaded guilty Tuesday to a low level felony in New York state court for stealing nearly $5 million in state taxes and has agreed to cooperate in state or federal investigations. The deal, in which he will pay the state $5 million but avoid jail time, was originally reported by the New York Times.
Noting his nickname, The New York Times first broke the story, reporting that:
A significant business partner of Michael D. Cohen, President Trump's personal lawyer, has agreed to cooperate with the government as a potential witness, a development that could be used as leverage to pressure Mr. Cohen to work with the special counsel examining Russian interference in the 2016 presidential election.
Under the deal reached with the New York attorney general's office, the partner, Evgeny A. Freidman, a Russian immigrant who is known as the Taxi King, specifically agreed to assist government prosecutors in state or federal investigations, according to a person briefed on the matter.
The broadened scope of Mr. Freidman's cooperation may prove worrisome not only to Mr. Cohen, who is the target of a continuing federal investigation, but also Mr. Trump.
The president's lawyers are already resigned to the strong possibility that the inquiry into Mr. Cohen's businesses could lead him to cooperate with federal prosecutors. That likelihood may now be greater, with Mr. Freidman potentially sharing what he knows with federal prosecutors in New York and the special counsel.
And for those of you who have not seen a photo of Friedman yet, take a look and see for yourself if you think he looks a fitting addition to "the family."


Capital letters and punctuation marks have been deleted from the text. First, replace them.
2. Underline every subject once, every finite verb twice, and label complements.
Note: The months in this tale are personified, i.e., they are characters in the legend.


question: I am 17 years old, and disabled. Due to the fact that I am disabled, there is no opportunity for me being on my own. My mother is understanding of my disability, and of all aspects of my life, with my "Gothiness" being an exception. I have not attended school for several years, being on the Home Bound program as an alternative. I will receive SSI Disability immediately upon turning 18. It has already been awarded to me.
I most likely will be unable to drive myself anywhere, because of my disability, but I want to go out in public as I like. Why is mother doing this? Why is she so ashamed? I have attempted to reason with her, to no avail. Anything I say is countered with, "That's not the point! You're selfish! What if people I know see you? What you see in the mirror is warped. Other people don't see that when they look at you. How on Earth could you perceive that as flattering? I think it's horrible! Are you doing this on purpose? My life is ruined forever! I shouldn't have to be embarrassed. Don't you consider what you're doing to other people?" Please help.
You see, your mother probably worries that your disability will make people treat you differently than other people; a worry that is not unreasonable. Since she can't "fix" you and make it so you can have a "normal" life (for values of "normal" meaning with just the average sort of ups and downs), she wants to try and ensure that you won't deal with even more unwanted (and possibly unwelcome) attention. Which the Lady of the Manners can understand; you're her child, and of course she wants to shield you from unwanted and potentially negative attention. But … there's no other way to put this; your mother is the one being selfish here. She is ignoring what you want, and is trying to make you feel guilty for what you prefer by stating that you're "ruining her life". You say that you've attempted to reason with her, so the Lady of the Manners suggests that you start being completely honest and blunt with her. Point out to her that you don't appreciate her trying to make you feel guilty for what you like. Tell her that no one's life has been "ruined" by someone else's cosmetic choices. Tell her that when she complains about wanting a "blonde-haired normal daughter", it feels like she's complaining not just about your makeup, but also about your disability. And finally, gently (or not-so-gently, depending on your mood) explain to her that you are expressing yourself through your flamboyant cosmetics because it makes you happy, that you are old enough to make your own choices about such things, and that she is being the selfish one in this situation.
Will all of this magically make your mother understand your side of the argument? The Lady of the Manners is sad to say, probably not. But these sorts of things must be said to your mother, because she needs to accept that you are your own person, with choices and tastes that don't always align with her wishes. The Lady of the Manners hopes that this discussion with your mother goes as well as it possibly can. Please write back and tell her how it went.
I wear black all the time, but I would like to learn how to dress in a more feminine manner, instead of my black tee's, jeans, and comfortable, but slobby footwear. I do own skirts, but I am not sure how to wear them with my lovely combat boots, and not look over done.
As for dressing in a more feminine manner than your usual wardrobe … firstly, are your t-shirts more boxy-shaped than fitted? Altering your shirts to fit your figure will add a more feminine touch to them. If you're handy with a needle and thread, you can transform the neckline of a regular tee into a more scoop-necked one, drawing the new neckline on the inside of the tee with tailor's chalk before you take the scissors to it, of course! (The Lady of the Manners usually makes the lowest part of the "scoop" at the front about 3" below the top of the original neckband.) If you want to get really fancy, you can add narrow lace trim to the new neckline and on the sleeves.
Other feminine touches you could try is adding tops that are t-shirt like to your wardrobe: the same sort of cut and stretchy-ness as a fitted t-shirt, but in stretch velvet or a silky knit. Wear a dressy blazer or jacket with your t-shirts, jeans, and skirts, add a handful of sparkly brooches to the lapel, or tuck a lacy handkerchief into the breast pocket). Start accumulating more "feminine" jewelry, such as strands of vintage faux pearls or ornate bracelets, and accessorize your current wardrobe with them. Of course, an extremely simple way to make your jeans and tees look more feminine is to wear simple, but striking, makeup, such as eyeliner, mascara, and lipstick.
The important thing to keep in mind is to make sure you're comfortable in what you're wearing. While the Lady of the Manners is a big fan of frills and flounces, she is well-aware that they aren't for everyone, and if you're wearing something that makes you feel awkward and uncomfortable, the outfit just won't look right on you, no matter how much effort you've put into it.
since I found your charm school a couple of years ago, I have always found your posts very interesting, amusing and educating. But now, for the first time, I have found something which you don't have posted on yet, or at least I haven't been able to find it.
The problem I am seeing at the moment, is that my sister-in-law used to be the "most gothy person" of the family, and now, she is not anymore. Which doesn't say that I'm trying to be, but that is the way she sees it. The only difference between us is that she likes to look goth to scare people off, whilst I prefer it just because I like the style and feel free in it.
The point in this is, that whenever I have seen her on a party whilst I'm wearing some clothing I really like, the next time I see her she will be wearing an almost exact copy of it, but than a cheap and "scary" version of it.
In the beginning I could laugh about it, but it starts to get very annoying, especially because I can't show my parents-in-law any pictures of something I'm planning on buying anymore, because chances are that she will find out and buy it too (and appearing on a party in the same clothing is less than nice).
I have been thinking a lot about it, but I can't think of anything that might change the way things are now, which is something I would really like, seeing as having a bad copy of you walking around is agitating.
My question is now, do you have some nice ideas to inspire me?
The Lady of the Manners wishes she had a simple answer for you, Elizabeth. But honestly, there isn't much you can do in a situation like this. There is probably nothing you can say to your sister-in-law to make her understand that you don't view being a Goth as something to compete over. To the Lady of the Manners, it seems like your sister-in-law is drawn to Goth as a way to get a reaction from people, to get attention. Which means that if you do try to talk to her about her copying your outfits, you'll be giving her the attention she wants. So, the Lady of the Manners suggests not talking to her about it, at all. Don't comment on it, and try to act as if you don't even notice what she's doing. If someone (even your sister-in-law) mentions the similarity in your styles to you, then smile and say something like "Oh yes, I'd noticed. I think it's sweet that she likes my clothing so much". Don't even hint at feeling agitated. Because by appearing to be unconcerned by her attempts at being the Scariest, Spookiest Goth In The Family, you will show that you are merely being true to yourself and your interests, and not trying to get everyone's attention.
If you feel very forgiving, you could take the tactic of "killing her with kindness", and give your sister-in-law well-chosen and lovely gothy items as holiday and birthday gifts, or offer to go on a shopping trip with her and help her pick out things. That way you could show that not only are you not in any sort of competition with her over who is the Most Goth, but that you support her being who she wants to be.
That, Snarklings, is that for this installment of Gothic Charm School. The Lady of the Manners is going to go look at her snowy back yard, make a cup of cocoa with rose marshmallows, stare longingly some more at photos of a particular mini tricorn hat that is adorned with a tiny pirate ship, and then read some more letters from the Gothic Charm School mailbox. In addition to reminding you to feel free to write to Gothic Charm School, the Lady of the Manners also wants to remind all of you of the Gothic Charm School Café Press store!