Whether your client's hair is vibrant marigold, brilliant blonde, purple, dusty pink or deep auburn red, hair color options are more creative and fun than ever before.
The color-retention magic begins in the salon with the revolutionary Keep Me Vivid Lamination Spray treatment. The spray is applied immediately after the color is rinsed out of the hair. The unique formula features a low pH of 4.0 to 5.0 that neutralizes the hair, stops the color processing and shuts down the cuticle. This action prevents color molecules from escaping and locks in the new hue. There's no need to shampoo and condition the hair after applying the Lamination Spray, so it's also a real time-saver for stylists and their clients!
Keep Me Vivid Shampoo: Total Results' first sulfate-free shampoo formula. It gently cleanses without stripping the hair and doesn't disturb hair color molecules. As a gentle formula, it consists of 60 percent carrying agents and produces a luxurious lather.
Keep Me Vivid Conditioner: This acidic formula nourishes hair and amplifies shine. It's lightweight and suitable for every hair type. It weightlessly treats the hair and leaves it feeling soft and silky.
Keep Me Vivid Velvetizer: This unique, oil-to-crème leave-in is applied to damp hair after shampooing and conditioning. It smoothes hair, and thanks to its UV filter also protects color from fading. Use the velvetizer before blow drying or air drying.
Keep Me Vivid Lamination Spray: Continued use of the Lamination Spray between salon visits ensures hair color remains vivid and hair stays lustrous and shiny.
All of the Keep Me Vivid formulas feature a new fragrance, containing notes of vanilla, coconut and cotton candy.


text:
Personal Thoughts about Guns after Florida School Shooting
By Arline Rowden
I was watching students from the Florida school, where a shooting took place on 2-14-18, speak today on TV. I'm hoping that these courageous young people will be able to inspire change in a way that has not happened before now. It inspired me to reflect in a more personal way on this issue.
We all have our own histories around guns. I grew up on a farm and my father had a couple of long guns. He did hunt small game. Although he was quick to anger, he never shot anyone or even threatened to do that. He did have respect for guns.
When I was in 4H, I did a gun safety project. My dad taught me how to load a rifle and about the safety on the gun and more. It was also required to learn to shoot accurately. I did some target practice and completed the project. Then my dad thought I might like to go hunting with him. That's when I realized that I did not want to shoot an animal. That was the end of my personal interaction with guns.
In 1969, one of my sisters was murdered by her ex-husband with his hunting rifle. I don't believe he was mentally ill in the usual sense of the word. But he didn't want the divorce. They had 7 children. She didn't own a gun but if she had a gun that night would she have been able to shoot in self-defense? He was hiding in their house and came out shooting at her as she walked towards her home. I don't think she ever imagined that would happen when she was returning home.
Their children were ages 5 to 15. All except one of them were in the house when the shooting happened. The oldest had to call the police and tell them that it was his father who was the shooter. He was arrested shortly after. Even though it was clearly first degree murder, he was willing to plead to a lesser charge. I think he spent 12 to 15 years in prison before he was released on parole.
My deceased sister's children were adopted by our oldest sister and husband and they moved from Wisconsin to the east coast. The trauma forever impacted their lives. It also impacted our whole family. Personally, it took years for me to feel any level of safety in the world. I never felt drawn to have a gun to protect myself because I didn't believe that I could shoot another being.
I'm not against people owning a gun but I feel it should be a privilege, not a right. There needs to be education around it and evaluation of the person's ability to be a responsible gun owner. I also feel that civilians should not have assault rifles. I understand some people may find it fun to shoot them on a firing range. When the 2nd amendment was written it took a long time to reload a gun.
Our world has become so polarized. What happened to cooperation and compromise? When people are emotional they tend to say and do things without being very thoughtful. I believe we need to start thinking more about what kind of world we want to live in and how we can help the world to be a better place. I'm trying to be hopeful that change will happen.
Categories: Social Awareness
Tagged: Arline Rowden, Spring 2018
New Attitudes For A New Age
Spring Celebrations & Wesak

redpajama_set_name: RedPajamaCommonCrawl


Organizational guru, Rachel Hoffman, says cleaning in short bursts can help you build the habits you need to keep your home clean(er).
You've probably learned by now that marathon cleaning is not sustainable. Lengthy, exhausting cleaning sessions can become a vicious cycle where you associate cleaning with the stress of those frenzied housekeeping attempts, according to Rachel Hoffman, author of "Unf*ck Your Habitat: You're Better Than Your Mess", so you just … don't clean, until it's an emergency (say, unexpected company). Rather than interspersing cleaning droughts with a frantic and doomed attempt to clean all the things, a more realistic — and helpful — approach is to tackle the job a few minutes at a time, Hoffman said.
And you might be surprised at how much you can accomplish in a those small chunks of time. Been putting off dealing with that pile of clothes growing ever larger on the chair in your bedroom (the "chairdrobe," Hoffman calls it) because it's going to take forever? Chances are it won't take nearly as long as you think it will. "In general, we way overestimate how much time tasks take," Hoffman said.
Knowing that you're only investing a few minutes at a time, as opposed to a whole day or weekend, makes slow, steady progress an easy reality.
So why not find out? "Setting a timer before doing your regular cleaning tasks gives you an idea of how long each one realistically takes," she said. Knowing that the dreaded chore actually takes literally three minutes can make you much more likely to just do it.
To get you started, here are three things each you can do in one, two, five, 10, and 20 minutes. Hoffman recommends using a timer as you're working, especially if you have a competitive streak. "I love timers because you're always trying to beat them," she said. You can also use her app, which comes with built-in random timed challenges (it's available for Apple or Android).
You can find a minute while you wait for coffee to brew, or your shower to get hot.
You can find five minutes while you fill the tub or wait for the water to boil for dinner. Or, while you're binging Netflix, as the intro plays.
You can find 10 minutes in between binging episodes (bonus, it gets you up and moving!). Or, plan to take the time right after work, before changing into your comfy clothes, or maybe in those few minutes while you wait for your partner to finish getting ready before you go out.
Inspired to do more after that 20 minutes? I know I usually am, once I get going. It's just as important to take time in between the 20 minute sessions, Hoffman said, lest you spin back out into a marathon session. Sit down with a cup of coffee or, hey, no judgment, scroll through Instagram for five minutes. If you're still motivated and find yourself looking for things to do (stranger things have happened!) check out Hoffman's Ten Things You Forget to Clean checklists for inspiration. But if you don't feel like going back to cleaning after your break, no worries. You'll find a few minutes somewhere else today.


text:
package java.nio;

/**
 * A buffer for bytes.
 *

 * A byte buffer can be created in either one of the following ways:
 *

 *
{@link #allocate(int) Allocate} a new byte array and create a buffer
 * based on it;

 *
{@link #allocateDirect(int) Allocate} a memory block and create a direct
 * buffer based on it;

 *
{@link #wrap(byte[]) Wrap} an existing byte array to create a new buffer.
 *

 *

 *
 */
public abstract class ByteBuffer extends Buffer implements
		Comparable<ByteBuffer> {

	/**
	 * Creates a byte buffer based on a newly allocated byte array.
	 *
	 * @param capacity
	 *            the capacity of the new buffer
	 * @return the created byte buffer.
	 * @throws IllegalArgumentException
	 *             if {@code capacity < 0}.
	 */
	public static ByteBuffer allocate(int capacity) {
		if (capacity < 0) {
			throw new IllegalArgumentException();
		}
		return BufferFactory.newByteBuffer(capacity);
	}

	/**
	 * Creates a direct byte buffer based on a newly allocated memory block.
	 *
	 * @param capacity
	 *            the capacity of the new buffer
	 * @return the created byte buffer.
	 * @throws IllegalArgumentException
	 *             if {@code capacity < 0}.
	 */
	public static ByteBuffer allocateDirect(int capacity) {
		if (capacity < 0) {
			throw new IllegalArgumentException();
		}
		return BufferFactory.newDirectByteBuffer(capacity);
	}

	/**
	 * Creates a new byte buffer by wrapping the given byte array.
	 *

	 * Calling this method has the same effect as
	 * {@code wrap(array, 0, array.length)}.
	 *
	 * @param array
	 *            the byte array which the new buffer will be based on
	 * @return the created byte buffer.
	 */
	public static ByteBuffer wrap(byte[] array) {
		return BufferFactory.newByteBuffer(array);
	}

	/**
	 * Creates a new byte buffer by wrapping the given byte array.
	 *

	 * The new buffer's position will be {@code start}, limit will be
	 * {@code start + len}, capacity will be the length of the array.
	 *
	 * @param array
	 *            the byte array which the new buffer will be based on.
	 * @param start
	 *            the start index, must not be negative and not greater than
	 *            {@code array.length}.
	 * @param len
	 *            the length, must not be negative and not greater than
	 *            {@code array.length - start}.
	 * @return the created byte buffer.
	 * @exception IndexOutOfBoundsException
	 *                if either {@code start} or {@code len} is invalid.
	 */
	public static ByteBuffer wrap(byte[] array, int start, int len) {
		int length = array.length;
		if ((start < 0) || (len < 0) || ((long) start + (long) len > length)) {
			throw new IndexOutOfBoundsException();
		}

		ByteBuffer buf = BufferFactory.newByteBuffer(array);
		buf.position = start;
		buf.limit = start + len;

		return buf;
	}

	/**
	 * The byte order of this buffer, default is {@code BIG_ENDIAN}.
	 */
	ByteOrder order = ByteOrder.BIG_ENDIAN;

	/**
	 * Constructs a {@code ByteBuffer} with given capacity.
	 *
	 * @param capacity
	 *            the capacity of the buffer.
	 */
	ByteBuffer(int capacity) {
		super(capacity);
		_elementSizeShift = 0;
	}

	/**
	 * Returns the byte array which this buffer is based on, if there is one.
	 *
	 * @return the byte array which this buffer is based on.
	 * @exception ReadOnlyBufferException
	 *                if this buffer is based on a read-only array.
	 * @exception UnsupportedOperationException
	 *                if this buffer is not based on an array.
	 */
	public final byte[] array() {
		return protectedArray();
	}

	/**
	 * Returns the offset of the byte array which this buffer is based on, if
	 * there is one.
	 *

	 * The offset is the index of the array which corresponds to the zero
	 * position of the buffer.
	 *
	 * @return the offset of the byte array which this buffer is based on.
	 * @exception ReadOnlyBufferException
	 *                if this buffer is based on a read-only array.
	 * @exception UnsupportedOperationException
	 *                if this buffer is not based on an array.
	 */
	public final int arrayOffset() {
		return protectedArrayOffset();
	}

	/**
	 * Returns a char buffer which is based on the remaining content of this
	 * byte buffer.
	 *

	 * The new buffer's position is zero, its limit and capacity is the number
	 * of remaining bytes divided by two, and its mark is not set. The new
	 * buffer's read-only property and byte order are the same as this buffer's.
	 * The new buffer is direct if this byte buffer is direct.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a char buffer which is based on the content of this byte buffer.
	 */
	public abstract CharBuffer asCharBuffer();

	/**
	 * Returns a double buffer which is based on the remaining content of this
	 * byte buffer.
	 *

	 * The new buffer's position is zero, its limit and capacity is the number
	 * of remaining bytes divided by eight, and its mark is not set. The new
	 * buffer's read-only property and byte order are the same as this buffer's.
	 * The new buffer is direct if this byte buffer is direct.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a double buffer which is based on the content of this byte
	 *         buffer.
	 */
	public abstract DoubleBuffer asDoubleBuffer();

	/**
	 * Returns a float buffer which is based on the remaining content of this
	 * byte buffer.
	 *

	 * The new buffer's position is zero, its limit and capacity is the number
	 * of remaining bytes divided by four, and its mark is not set. The new
	 * buffer's read-only property and byte order are the same as this buffer's.
	 * The new buffer is direct if this byte buffer is direct.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a float buffer which is based on the content of this byte buffer.
	 */
	public abstract FloatBuffer asFloatBuffer();

	/**
	 * Returns a int buffer which is based on the remaining content of this byte
	 * buffer.
	 *

	 * The new buffer's position is zero, its limit and capacity is the number
	 * of remaining bytes divided by four, and its mark is not set. The new
	 * buffer's read-only property and byte order are the same as this buffer's.
	 * The new buffer is direct if this byte buffer is direct.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a int buffer which is based on the content of this byte buffer.
	 */
	public abstract IntBuffer asIntBuffer();

	/**
	 * Returns a long buffer which is based on the remaining content of this
	 * byte buffer.
	 *

	 * The new buffer's position is zero, its limit and capacity is the number
	 * of remaining bytes divided by eight, and its mark is not set. The new
	 * buffer's read-only property and byte order are the same as this buffer's.
	 * The new buffer is direct if this byte buffer is direct.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a long buffer which is based on the content of this byte buffer.
	 */
	public abstract LongBuffer asLongBuffer();

	/**
	 * Returns a read-only buffer that shares its content with this buffer.
	 *

	 * The returned buffer is guaranteed to be a new instance, even if this
	 * buffer is read-only itself. The new buffer's position, limit, capacity
	 * and mark are the same as this buffer.
	 *

	 * The new buffer shares its content with this buffer, which means this
	 * buffer's change of content will be visible to the new buffer. The two
	 * buffer's position, limit and mark are independent.
	 *
	 * @return a read-only version of this buffer.
	 */
	public abstract ByteBuffer asReadOnlyBuffer();

	/**
	 * Returns a short buffer which is based on the remaining content of this
	 * byte buffer.
	 *

	 * The new buffer's position is zero, its limit and capacity is the number
	 * of remaining bytes divided by two, and its mark is not set. The new
	 * buffer's read-only property and byte order are the same as this buffer's.
	 * The new buffer is direct if this byte buffer is direct.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a short buffer which is based on the content of this byte buffer.
	 */
	public abstract ShortBuffer asShortBuffer();

	/**
	 * Compacts this byte buffer.
	 *

	 * The remaining bytes will be moved to the head of the buffer, starting
	 * from position zero. Then the position is set to {@code remaining()}; the
	 * limit is set to capacity; the mark is cleared.
	 *
	 * @return this buffer.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer compact();

	/**
	 * Compares the remaining bytes of this buffer to another byte buffer's
	 * remaining bytes.
	 *
	 * @param otherBuffer
	 *            another byte buffer.
	 * @return a negative value if this is less than {@code other}; 0 if this
	 *         equals to {@code other}; a positive value if this is greater than
	 *         {@code other}.
	 * @exception ClassCastException
	 *                if {@code other} is not a byte buffer.
	 */
	public int compareTo(ByteBuffer otherBuffer) {
		int compareRemaining = (remaining() < otherBuffer.remaining()) ? remaining()
				: otherBuffer.remaining();
		int thisPos = position;
		int otherPos = otherBuffer.position;
		byte thisByte, otherByte;
		while (compareRemaining > 0) {
			thisByte = get(thisPos);
			otherByte = otherBuffer.get(otherPos);
			if (thisByte != otherByte) {
				return thisByte < otherByte ? -1 : 1;
			}
			thisPos++;
			otherPos++;
			compareRemaining--;
		}
		return remaining() - otherBuffer.remaining();
	}

	/**
	 * Returns a duplicated buffer that shares its content with this buffer.
	 *

	 * The duplicated buffer's position, limit, capacity and mark are the same
	 * as this buffer's. The duplicated buffer's read-only property and byte
	 * order are the same as this buffer's too.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a duplicated buffer that shares its content with this buffer.
	 */
	public abstract ByteBuffer duplicate();

	/**
	 * Checks whether this byte buffer is equal to another object.
	 *

	 * If {@code other} is not a byte buffer then {@code false} is returned. Two
	 * byte buffers are equal if and only if their remaining bytes are exactly
	 * the same. Position, limit, capacity and mark are not considered.
	 *
	 * @param other
	 *            the object to compare with this byte buffer.
	 * @return {@code true} if this byte buffer is equal to {@code other},
	 *         {@code false} otherwise.
	 */
	@Override
	public boolean equals(Object other) {
		if (!(other instanceof ByteBuffer)) {
			return false;
		}
		ByteBuffer otherBuffer = (ByteBuffer) other;

		if (remaining() != otherBuffer.remaining()) {
			return false;
		}

		int myPosition = position;
		int otherPosition = otherBuffer.position;
		boolean equalSoFar = true;
		while (equalSoFar && (myPosition < limit)) {
			equalSoFar = get(myPosition++) == otherBuffer.get(otherPosition++);
		}

		return equalSoFar;
	}

	/**
	 * Returns the byte at the current position and increases the position by 1.
	 *
	 * @return the byte at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is equal or greater than limit.
	 */
	public abstract byte get();

	/**
	 * Reads bytes from the current position into the specified byte array and
	 * increases the position by the number of bytes read.
	 *

	 * Calling this method has the same effect as
	 * {@code get(dst, 0, dst.length)}.
	 *
	 * @param dst
	 *            the destination byte array.
	 * @return this buffer.
	 * @exception BufferUnderflowException
	 *                if {@code dst.length} is greater than {@code remaining()}.
	 */
	public ByteBuffer get(byte[] dst) {
		return get(dst, 0, dst.length);
	}

	/**
	 * Reads bytes from the current position into the specified byte array,
	 * starting at the specified offset, and increases the position by the
	 * number of bytes read.
	 *
	 * @param dst
	 *            the target byte array.
	 * @param off
	 *            the offset of the byte array, must not be negative and not
	 *            greater than {@code dst.length}.
	 * @param len
	 *            the number of bytes to read, must not be negative and not
	 *            greater than {@code dst.length - off}
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if either {@code off} or {@code len} is invalid.
	 * @exception BufferUnderflowException
	 *                if {@code len} is greater than {@code remaining()}.
	 */
	public ByteBuffer get(byte[] dst, int off, int len) {
		int length = dst.length;
		if ((off < 0) || (len < 0) || ((long) off + (long) len > length)) {
			throw new IndexOutOfBoundsException();
		}

		if (len > remaining()) {
			throw new BufferUnderflowException();
		}
		for (int i = off; i < off + len; i++) {
			dst[i] = get();
		}
		return this;
	}

	/**
	 * Returns the byte at the specified index and does not change the position.
	 *
	 * @param index
	 *            the index, must not be negative and less than limit.
	 * @return the byte at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if index is invalid.
	 */
	public abstract byte get(int index);

	/**
	 * Returns the char at the current position and increases the position by 2.
	 *

	 * The 2 bytes starting at the current position are composed into a char
	 * according to the current byte order and returned.
	 *
	 * @return the char at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is greater than {@code limit - 2}.
	 */
	public abstract char getChar();

	/**
	 * Returns the char at the specified index.
	 *

	 * The 2 bytes starting from the specified index are composed into a char
	 * according to the current byte order and returned. The position is not
	 * changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 2}.
	 * @return the char at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 */
	public abstract char getChar(int index);

	/**
	 * Returns the double at the current position and increases the position by
	 * 8.
	 *

	 * The 8 bytes starting from the current position are composed into a double
	 * according to the current byte order and returned.
	 *
	 * @return the double at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is greater than {@code limit - 8}.
	 */
	public abstract double getDouble();

	/**
	 * Returns the double at the specified index.
	 *

	 * The 8 bytes starting at the specified index are composed into a double
	 * according to the current byte order and returned. The position is not
	 * changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 8}.
	 * @return the double at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 */
	public abstract double getDouble(int index);

	/**
	 * Returns the float at the current position and increases the position by
	 * 4.
	 *

	 * The 4 bytes starting at the current position are composed into a float
	 * according to the current byte order and returned.
	 *
	 * @return the float at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is greater than {@code limit - 4}.
	 */
	public abstract float getFloat();

	/**
	 * Returns the float at the specified index.
	 *

	 * The 4 bytes starting at the specified index are composed into a float
	 * according to the current byte order and returned. The position is not
	 * changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 4}.
	 * @return the float at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 */
	public abstract float getFloat(int index);

	/**
	 * Returns the int at the current position and increases the position by 4.
	 *

	 * The 4 bytes starting at the current position are composed into a int
	 * according to the current byte order and returned.
	 *
	 * @return the int at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is greater than {@code limit - 4}.
	 */
	public abstract int getInt();

	/**
	 * Returns the int at the specified index.
	 *

	 * The 4 bytes starting at the specified index are composed into a int
	 * according to the current byte order and returned. The position is not
	 * changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 4}.
	 * @return the int at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 */
	public abstract int getInt(int index);

	/**
	 * Returns the long at the current position and increases the position by 8.
	 *

	 * The 8 bytes starting at the current position are composed into a long
	 * according to the current byte order and returned.
	 *
	 * @return the long at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is greater than {@code limit - 8}.
	 */
	public abstract long getLong();

	/**
	 * Returns the long at the specified index.
	 *

	 * The 8 bytes starting at the specified index are composed into a long
	 * according to the current byte order and returned. The position is not
	 * changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 8}.
	 * @return the long at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 */
	public abstract long getLong(int index);

	/**
	 * Returns the short at the current position and increases the position by
	 * 2.
	 *

	 * The 2 bytes starting at the current position are composed into a short
	 * according to the current byte order and returned.
	 *
	 * @return the short at the current position.
	 * @exception BufferUnderflowException
	 *                if the position is greater than {@code limit - 2}.
	 */
	public abstract short getShort();

	/**
	 * Returns the short at the specified index.
	 *

	 * The 2 bytes starting at the specified index are composed into a short
	 * according to the current byte order and returned. The position is not
	 * changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 2}.
	 * @return the short at the specified index.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 */
	public abstract short getShort(int index);

	public final boolean hasArray() {
		return protectedHasArray();
	}

	/**
	 * Calculates this buffer's hash code from the remaining chars. The
	 * position, limit, capacity and mark don't affect the hash code.
	 *
	 * @return the hash code calculated from the remaining bytes.
	 */
	@Override
	public int hashCode() {
		int myPosition = position;
		int hash = 0;
		while (myPosition < limit) {
			hash = hash + get(myPosition++);
		}
		return hash;
	}

	/**
	 * Indicates whether this buffer is direct.
	 *
	 * @return {@code true} if this buffer is direct, {@code false} otherwise.
	 */
	public abstract boolean isDirect();

	/**
	 * Returns the byte order used by this buffer when converting bytes from/to
	 * other primitive types.
	 *

	 * The default byte order of byte buffer is always
	 * {@link ByteOrder#BIG_ENDIAN BIG_ENDIAN}
	 *
	 * @return the byte order used by this buffer when converting bytes from/to
	 *         other primitive types.
	 */
	public final ByteOrder order() {
		return order;
	}

	/**
	 * Sets the byte order of this buffer.
	 *
	 * @param byteOrder
	 *            the byte order to set. If {@code null} then the order will be
	 *            {@link ByteOrder#LITTLE_ENDIAN LITTLE_ENDIAN}.
	 * @return this buffer.
	 * @see ByteOrder
	 */
	public final ByteBuffer order(ByteOrder byteOrder) {
		return orderImpl(byteOrder);
	}

	ByteBuffer orderImpl(ByteOrder byteOrder) {
		if (byteOrder == null) {
			byteOrder = ByteOrder.LITTLE_ENDIAN;
		}
		order = byteOrder;
		return this;
	}

	/**
	 * Child class implements this method to realize {@code array()}.
	 *
	 * @see #array()
	 */
	abstract byte[] protectedArray();

	/**
	 * Child class implements this method to realize {@code arrayOffset()}.
	 *
	 * @see #arrayOffset()
	 */
	abstract int protectedArrayOffset();

	/**
	 * Child class implements this method to realize {@code hasArray()}.
	 *
	 * @see #hasArray()
	 */
	abstract boolean protectedHasArray();

	/**
	 * Writes the given byte to the current position and increases the position
	 * by 1.
	 *
	 * @param b
	 *            the byte to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is equal or greater than limit.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer put(byte b);

	/**
	 * Writes bytes in the given byte array to the current position and
	 * increases the position by the number of bytes written.
	 *

	 * Calling this method has the same effect as
	 * {@code put(src, 0, src.length)}.
	 *
	 * @param src
	 *            the source byte array.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if {@code remaining()} is less than {@code src.length}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public final ByteBuffer put(byte[] src) {
		return put(src, 0, src.length);
	}

	/**
	 * Writes bytes in the given byte array, starting from the specified offset,
	 * to the current position and increases the position by the number of bytes
	 * written.
	 *
	 * @param src
	 *            the source byte array.
	 * @param off
	 *            the offset of byte array, must not be negative and not greater
	 *            than {@code src.length}.
	 * @param len
	 *            the number of bytes to write, must not be negative and not
	 *            greater than {@code src.length - off}.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if {@code remaining()} is less than {@code len}.
	 * @exception IndexOutOfBoundsException
	 *                if either {@code off} or {@code len} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public ByteBuffer put(byte[] src, int off, int len) {
		int length = src.length;
		if ((off < 0) || (len < 0) || ((long) off + (long) len > length)) {
			throw new IndexOutOfBoundsException();
		}

		if (len > remaining()) {
			throw new BufferOverflowException();
		}
		for (int i = off; i < off + len; i++) {
			put(src[i]);
		}
		return this;
	}

	/**
	 * Writes all the remaining bytes of the {@code src} byte buffer to this
	 * buffer's current position, and increases both buffers' position by the
	 * number of bytes copied.
	 *
	 * @param src
	 *            the source byte buffer.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if {@code src.remaining()} is greater than this buffer's
	 *                {@code remaining()}.
	 * @exception IllegalArgumentException
	 *                if {@code src} is this buffer.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public ByteBuffer put(ByteBuffer src) {
		if (src == this) {
			throw new IllegalArgumentException();
		}
		if (src.remaining() > remaining()) {
			throw new BufferOverflowException();
		}
		byte[] contents = new byte[src.remaining()];
		src.get(contents);
		put(contents);
		return this;
	}

	/**
	 * Write a byte to the specified index of this buffer without changing the
	 * position.
	 *
	 * @param index
	 *            the index, must not be negative and less than the limit.
	 * @param b
	 *            the byte to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer put(int index, byte b);

	/**
	 * Writes the given char to the current position and increases the position
	 * by 2.
	 *

	 * The char is converted to bytes using the current byte order.
	 *
	 * @param value
	 *            the char to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is greater than {@code limit - 2}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putChar(char value);

	/**
	 * Writes the given char to the specified index of this buffer.
	 *

	 * The char is converted to bytes using the current byte order. The position
	 * is not changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 2}.
	 * @param value
	 *            the char to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putChar(int index, char value);

	/**
	 * Writes the given double to the current position and increases the
	 * position by 8.
	 *

	 * The double is converted to bytes using the current byte order.
	 *
	 * @param value
	 *            the double to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is greater than {@code limit - 8}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putDouble(double value);

	/**
	 * Writes the given double to the specified index of this buffer.
	 *

	 * The double is converted to bytes using the current byte order. The
	 * position is not changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 8}.
	 * @param value
	 *            the double to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putDouble(int index, double value);

	/**
	 * Writes the given float to the current position and increases the position
	 * by 4.
	 *

	 * The float is converted to bytes using the current byte order.
	 *
	 * @param value
	 *            the float to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is greater than {@code limit - 4}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putFloat(float value);

	/**
	 * Writes the given float to the specified index of this buffer.
	 *

	 * The float is converted to bytes using the current byte order. The
	 * position is not changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 4}.
	 * @param value
	 *            the float to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putFloat(int index, float value);

	/**
	 * Writes the given int to the current position and increases the position
	 * by 4.
	 *

	 * The int is converted to bytes using the current byte order.
	 *
	 * @param value
	 *            the int to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is greater than {@code limit - 4}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putInt(int value);

	/**
	 * Writes the given int to the specified index of this buffer.
	 *

	 * The int is converted to bytes using the current byte order. The position
	 * is not changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 4}.
	 * @param value
	 *            the int to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putInt(int index, int value);

	/**
	 * Writes the given long to the current position and increases the position
	 * by 8.
	 *

	 * The long is converted to bytes using the current byte order.
	 *
	 * @param value
	 *            the long to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is greater than {@code limit - 8}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putLong(long value);

	/**
	 * Writes the given long to the specified index of this buffer.
	 *

	 * The long is converted to bytes using the current byte order. The position
	 * is not changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 8}.
	 * @param value
	 *            the long to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putLong(int index, long value);

	/**
	 * Writes the given short to the current position and increases the position
	 * by 2.
	 *

	 * The short is converted to bytes using the current byte order.
	 *
	 * @param value
	 *            the short to write.
	 * @return this buffer.
	 * @exception BufferOverflowException
	 *                if position is greater than {@code limit - 2}.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putShort(short value);

	/**
	 * Writes the given short to the specified index of this buffer.
	 *

	 * The short is converted to bytes using the current byte order. The
	 * position is not changed.
	 *
	 * @param index
	 *            the index, must not be negative and equal or less than
	 *            {@code limit - 2}.
	 * @param value
	 *            the short to write.
	 * @return this buffer.
	 * @exception IndexOutOfBoundsException
	 *                if {@code index} is invalid.
	 * @exception ReadOnlyBufferException
	 *                if no changes may be made to the contents of this buffer.
	 */
	public abstract ByteBuffer putShort(int index, short value);

	/**
	 * Returns a sliced buffer that shares its content with this buffer.
	 *

	 * The sliced buffer's capacity will be this buffer's {@code remaining()},
	 * and it's zero position will correspond to this buffer's current position.
	 * The new buffer's position will be 0, limit will be its capacity, and its
	 * mark is cleared. The new buffer's read-only property and byte order are
	 * the same as this buffer's.
	 *

	 * The new buffer shares its content with this buffer, which means either
	 * buffer's change of content will be visible to the other. The two buffer's
	 * position, limit and mark are independent.
	 *
	 * @return a sliced buffer that shares its content with this buffer.
	 */
	public abstract ByteBuffer slice();

	/**
	 * Returns a string representing the state of this byte buffer.
	 *
	 * @return a string representing the state of this byte buffer.
	 */
	@Override
	public String toString() {
		StringBuilder buf = new StringBuilder();
		buf.append(getClass().getName());
		buf.append(", status: capacity=");
		buf.append(capacity());
		buf.append(" position=");
		buf.append(position());
		buf.append(" limit=");
		buf.append(limit());
		return buf.toString();
	}
}

redpajama_set_name: RedPajamaGithub


Zero Division Signature Management sent us out the latest C'est L'Afrique (That's Africa) patches with a new PVC selection. These are smaller than the original and really show off the details of their design. They are available in the original Rhodesian (Transitional) color way as well as the new Maghreb (Desert) for those looking to more Northern regions of the dark continent. These patches are now available along with the original in both color ways at PredatorArmament.com Shipping is included with the pricing. Made in the USA.


text:
New York is No Hero
David S. D'Amato | @dsdamato | Support this author on Patreon | June 26th, 2011
"New York," reports BBC News, "has become the sixth and most populous US state to allow same-sex marriage." After the bill passed the New York legislature, the state's Governor Andrew Cuomo made the bill law with his signature, prompting local Catholic bishops to describe the law as an attempt to "redefine [the] cornerstones of civilization."
New York's new law reignites the contentious issue of same-sex marriage, providing an occasion to reconsider some of the arguments of both sides. Since the application of the market anarchist prohibition against the use of force may seem to be difficult on this issue, it's necessary to heed practical nuances of what "gay marriage" actually means.
Though there's significant overlap between them, the two spheres and denotations of "marriage" have always remained discrete as within society. Even before gay marriage was "legalized," warranting recognition from the state, individual churches, for example, went ahead and settled upon their own practices regarding who could be joined in holy matrimony.
In many ways, then, the controversy over gay marriage in the United States has never been about marriage in and of itself, about whether or not extra-governmental social groups like churches would be allowed to marry same-sex couples. To the extent that the critiques of same-sex marriage fall short of urging for the illegality of strictly religious or social practices, their worries about the "undermining marriage and the family" are red herrings.
No one anywhere close to the mainstream of the debate suggests that something like a commitment ceremony, existing outside the purview of the state, ought to be outlawed. The controversy therefore isn't so much about marriage — at least not in any holistic sense — as it is about a certain very specific set of legal rights granted by the state.
When considering the issue, we must take great care to preserve in our arguments the distinction between spiritual or religious senses of marriage and "civil marriage," the important legal benefits that emanate from a marriage license. As a matter of principle, market anarchists would like to free marriage altogether from the coercive clutches of the state, to erase the entire arbitrary, state-created legal framework around wedlock.
Autonomous adults ought to be able to marry or not marry whomever they choose and to enter into whatever kinds of consensual relationships they're inclined toward without the state acting as referee. A question thus arises as to why a market anarchist would advocate for gay marriage instead of against state involvement.
But the two positions aren't mutually exclusive, and, given the special benefits allowed to married couples, notions of legal fairness — i.e., fairness under the law — require the extension of civil marriage to gays.
Ideally, of course, society wouldn't exist inside of a scaffolding of special privilege that completely weaves marriage into every layer of rules about things like taxes, property and health care rights. Insofar as society does occupy such a scheme, however, philosophical anarchism does not demand that homosexuals be relegated to second-class citizens. While I have no use for the Constitution or its Equal Protection Clause, a stateless society built on voluntary exchange and cooperation would be, by definition, a society founded on the moral principle of equality.
As long as the state is issuing legal instruments that entitle their holders to a host of very valuable legal protections and perks, it's untenable to suggest that gays ought to be denied those rights on the basis of the claim that no one should be accorded them. Market anarchists don't ignore the subtlety of the question before us by insisting that any lengthening of the state's reach falls on the wrong side of a bright line rule.
Even assuming that we did insist on such a rule, it isn't at all clear that denying gays the right to a civil marriage isn't more statist in that it unfairly encumbers gays with what are actually legal handicaps. The State of New York deserves no applause or adulation for what has done. Though the state treats it as such, basic human dignity is something we're born with, not something that rulers give us.
Citations to this article:
David D'Amato, New York is no hero in same-sex marriage vote, University of Iowa Daily Iowan, 07/05/11


text:
Home > Reference > Indian Literature > Regional Indian Literature > Tamil Literature > Iraiyanar Akapporul
Iraiyanar Akapporul, Tamil Literature
Iraiyanar Akapporu or Kalaviyal Enra Iraiyanar Akapporul is an early medieval poetic work of Tamil literature. It is composed in the akam tradition.
Iraiyanar Akapporul, also known as Kalaviyal Enra Iraiyanar Akapporul, which means the treatise on the theme of love by Iraiyanar called- The study of stolen love. It is an early medieval poetic work in Tamil, particularly, on the literary conventions related with the akam tradition of love poems in Tamil literature. The precise date of the work cannot be ascertained but the period of composition is generally accepted to be between the 5th and 8th centuries. The Iraiyanar Akapporul comprises of a set of sixty nurpas terse epigrams written in poetry that codify rules accredited to Iraiyanar. The accumulated text, along with an extensive prose thesis on akam poetics credited to Nakkiranar, is structured as a commentary on the nurpas, but notably develops on them and initiates various new ideas. The literary of Iraiyanar Akapporul or Kalaviyal Enra Iraiyanar Akapporul constitutes an essential place in the history of Tamil literature for numerous causes.
The poetical argument presented through the work, including the treatment of conventional episodes of love as consecutive scenes in a recounting drama by Nakkiranar, was tremendously influential in the expansion and growth of Tamil love poetry and poetics during the medieval and pre-colonial eras. Further more, the treatise of Nakkiranar is the first major Tamil literary work to be composed totally in prose form and the first scholarly textual commentary in Tamil. It stylistically formed the evolution of the Tamil prose and the tradition of commentaries. Iraiyanar Akapporul also comprises of the earliest accounts of legends from the Sangam age that has played an important role in the development of modern Tamil awareness.
Composition of Iraiyanar Akapporul
The Iraiyanar Akapporul or Kalaviyal Enra Iraiyanar Akapporul is a complex literary work in its current form. It consists of 3 distinctive texts by different poets and authors. These are 60 nurpas that comprises of the foundation of the Iraiyanar Akapporul, a long prose commentary on the nurpas, as well as a set of verses known as the Pantikkovai which are entrenched in the commentary. The original work of the Iraiyanar Akapporul comprised of 60 brief verses termed as nurpas, which in total, has 149 lines. The hymns depict several similarities with the porulatikaram segment of the Tolkappiyam, which is an ancient manual on Tamil grammar, prosody and poetics, both in its vocabulary and its core concepts. The poet of the 60 verses of Iraiyanar Akapporul still remains anonymous and it is rather difficult to precisely date the verses in the work.
The second constituent of the work is the treatise on love poetics by Nakkiranar which, even though prepared as a commentary, is treated by contemporary scholars as a scholarly and intellectual work in Tamil literature. The commentary is several times the length of the verses themselves which extend up to more than two hundred pages in Tamil language. The treatise is composed in the style and tones of an essay of the type which is commonly available at a literary academy.
Content of Iraiyanar Akapporul
The Iraiyanar Akapporul is written with the concern of establishing the literary conventions which moderate the akam tradition of Tamil love poetry. The traditions and conventions are obtained from the poetic works of the Sangam literature. Each verse consists of authentic words that are spoken by one of the individuals involved in the relationship, without any commentary by a panoptical narrator. Only specific characters in the literary work contain dialogues, like Talaivan (the hero), Talaivi (the heroine), Tolan (a close male friend of the hero Talaivan), Toli (a close female friend of the heroine Talaivi), and other characters like mother, foster-parents, courtesans, bards who arbitrate between a husband and wife and a few other sundry characters. The spoken words or dialogues are addressed to a listener, as soliloquies were not permitted by the traditions of akam poetry.
The transcript divides the development of a love relationship into 2 stages, first the stage of stolen love known as Kaavu, and stage chaste love known as Karpu. Love is believed to be stolen before marriage and chaste after marriage. Several types of situations and consequences may occur within each stage.
Significance of Iraiyanar Akapporul in Tamil Literature
The Tamil literary work of Iraiyanar Akapporul or Kalaviyal Enra Iraiyanar Akapporul and particularly the commentary of Nakkiranar, reintroduces the akam tradition in Tamil literature from the Sangam age in the light of the Shaivite Bhakti traditions. The Shaivite tradition was wide spread through out Tamil Nadu in a gesture of Hindu revivalism during that period. According to Indian traditions, a commentary plays a vital role in reworking and reinterpreting the ability of implementing a text or convention in the context of evolving historical or social conditions. Commentary of Nakkiranar plays the role of retrieving and regaining the Tamil akam tradition, which is secular in form and associated with Jainism, for the Tamil Shaivite traditions.


DANIEL LEVY is calm that Mauricio Pochettino would reject any advances from other Premier League clubs.
The Tottenham boss is in demand with Manchester United and Chelsea keen on his services in the summer.
But with Spurs riding high in the Premier League and maintaining their unlikely title charge, Levy is relaxed about Pochettino's future.
Levy simply said: "Mauricio has three-and-a-half years left on his contract."
Former Spurs defender Gary Mabbutt shares Levy's thoughts that the Argentine will stay at White Hart Lane.
He said:"I am convinced he would turn down any advances from Manchester United or Chelsea.
I'm sure he sees this squad of players and what is happening at Tottenham on and off the field and realises these are very exciting times for the club.
"Those people saying he might get tempted away, I would say to them when was the last time Totttenham had a very good chance of winning the title?


With our know-how, experience and way of thinking, we have developed business activities that extend over several different areas and markets. The common ground is the needs of our customers and society as a whole for innovative and specially adapted solutions that are also sustainable.
Below, we exemplify the breadth of our company with a overview of references, projects, brands and production techniques.


Definition - What does Cyberwarfare mean?
Cyberwarfare is any virtual conflict initiated as a politically motivated attack on an enemy's computer and information systems. Waged via the Internet, these attacks disable financial and organizational systems by stealing or altering classified data to undermine networks, websites and services.
Cyberwarfare is also known as cyber warfare or cyber war.
Sabotage: Military and financial computer systems are at risk for the disruption of normal operations and equipment, such as communications, fuel, power and transportation infrastructures.
Espionage and/or security breaches: These illegal exploitation methods are used to disable networks, software, computers or the Internet to steal or acquire classified information from rival institutions or individuals for military, political or financial gain.
On the flip side, systems procedures are continuously developed and tested to defend against cyberwarfare attacks. For example, organizations will internally attack its system to identify vulnerabilities for proper removal and defense. A common perception of a hacker is that of a teenage geek who fools breaks into computer systems for fun. While this perception was perhaps once true, modern cyberwarfare involves well trained, well funded professionals backed by nation states. Examples, such as the Stuxnet virus, are given by some experts to demonstrate that much more is happening behind the scenes, and that the front lines in future wars will be digital.
Advanced Persistent Threats: First Salvo in the Coming Cyberwar?


===== Data from Ableton Live ===== You will notice that the data shown in the viewer reflects the current state of the Ableton Live Set. You can see a number of channels reflecting time data (e.g. song/info/beats) and a few others reflecting various states (e.g. song/info/play). Data coming in from Live is generally [[CHOP]] data, and can be accessed by wiring from the TDAbleton Component, as has been done with the nullSong CHOP. Look in the parameters of the circle1 SOP to see one way of using this incoming data. Some data from Live come in [[DAT]] format, and can be accessed similarly from outputs. In certain cases, incoming data may also come via callback. Examples of this can be found in the abletonSong1_callbacks DAT. Python callbacks are beyond the scope of this guide, but if you know a little Python, looking in this DAT will reveal the examples which set the locatorByCallback and sceneByCallback textTOPs.


Beautiful neighborhood in North Sterling Heights and Utica Schools. Enjoy this broad front brick ranch that has 3 bedrooms, living room, nice kitchen with large eating area, updated bathroom, family room and door wall onto patio and full basement with plenty of storage space and is ready to be finished. It has a great open concept floor plan and is 1,141 square feet. Home has some hardwood floors. It also has a over sized 2.5 car detached garage. The private back yard perfect for BBQ's, entertaining and family fun. You are close to everything. Walking distance to Dodge Park. Home and property being purchased "Absolute As Is Condition. Conveyance is by Fiduciary Deed. No FHA VA Financing is available. Immediate Occupancy at closing. EMD Minimum Deposit is $15,000.


text:
Amid tense immigration climate, LAPD revises…
Amid tense immigration climate, LAPD revises rules for working with ICE, place-of-birth questions
By Elizabeth Chou | echou@scng.com | Daily News
PUBLISHED: February 13, 2018 at 2:10 pm | UPDATED: February 15, 2018 at 8:12 am
Students of the Academia Avance charter school in Highland Park, and many of their parents, were on edge last February.
It was the morning after a classmate's father, Romulo Avelica-Gonzalez, had been detained by federal immigration agents as he dropped off his children at school. So when a parent drove by and spotted uniformed law enforcement officials speaking to two students near the school, alarm bells sounded in their minds.
Frantic calls were made to Academia Avance's executive director, Ricardo Mireles. "ICE agents have our students!" one parent told him.
Mireles "immediately zipped over there," he said. It turned out the officials were not U.S. Immigration and Customs Enforcement agents, but Los Angeles Police Department officers.
Yet the feeling of unease remained.
After the incident, one of the students who had been approached by the police asked if he should be worried: "Mr. Mireles, they asked me, 'Where was I born?'" the student said.
Recalling this incident nearly a year later, Mireles said "in that context, they understood it as, 'Are the police looking into our immigration status?'"
The place-of-birth question — one that is commonly asked by federal immigration officials — cast uncertainty on assurances made by Mireles and others about the role of the local police.
Mireles said these were not abstract fears. One of the two students was in the country illegally, having been brought here as a child, and has been able to stay because of the federal DACA (Deferred Action for Childhood Arrivals) policy, which President Donald Trump's administration is dismantling, he said.
RELATED STORY: Undocumented dad detained by ICE since February released, reunites with family
LAPD Chief Charlie Beck speaks at a press conference, joined by and Los Angeles Mayor Eric Garcetti. (File photo by David Crane/L.A. Daily News)
Partly in an effort to allay such fears, LAPD chief Charlie Beck issued an 11-page department-wide directive in December, laying out updated procedures for how command staff and rank-and-file officers should handle situations involving immigration status and enforcement. City law enforcement officials and leaders have vowed to stay out of civil immigration enforcement, which is under the jurisdiction of the federal government. The memo also adds to the LAPD's Special Order 40, a 1979 policy that tells officers not to take an active role in enforcing civil immigration laws.
The directive itself was released internally on Dec. 29, while a "frequently asked questions" webpage about LAPD's involvement in federal immigration was updated in January.
The memo also lays out the LAPD's limited role in the enforcement of criminal immigration laws. LAPD officials can "detain for investigation, based on reasonable suspicion, a person suspected of" illegally re-entering the country after being convicted of an aggravated felony, with some exceptions, according to the directive.
The board of the Los Angeles Police Protective League, the union that represents rank-and-file LAPD officers, responded to the policies, saying that it "does not appear to inhibit our ability to focus on reducing the rise in violent crime Los Angeles has experienced for several years."
"Our ability to work jointly with our law enforcement partners to remove dangerous criminals, drugs, and guns off of our streets is important and we must work toward achieving those goals within this revised policy," the board said.
LAPD's need for trust
Over the last year, Beck and Los Angeles Mayor Eric Garcetti have expressed concern that the talk of ramping up of immigration enforcement under Trump's administration could damage the trust local law enforcement has built up with the immigrant community, making it harder to keep the city safe. As an example, city officials and leaders pointed to the plummeting rate of calls from the Latino community reporting sexual assault and domestic violence.
Deputy Chief Robert Arcos, one of the department's experts on immigration matters, said the updates in the directive grew out of conversations with various groups, following the 2016 presidential election.
"It was unprecedented as far as the collaboration that took place," Arcos said. "There were areas where we disagreed, and I think the value in that is, rather than walk away, we kept working through it."
Beck's directive, which was issued Dec. 29, updates the department's rules to better align with SB 54, the California Values Act, a state bill that limits local law enforcement's coordination with federal immigration agencies.
The directive also clarifies some rules around joint task force operations that some advocacy groups say have put immigrants at risk of being detained by ICE through so-called "collateral arrests" of immigrants who are bystanders and have little to do with the main investigation.
One of the primary objections advocates raise about LAPD's relationship to federal immigration officials are these joint operation task forces, which are often formed to tackle such crimes as human and drug trafficking. Advocates say they would prefer that the LAPD stop working with ICE as part of such task forces.
"It was unprecedented as far as the collaboration that took place. There were areas where we disagreed, and I think the value in that is, rather than walk away, we kept working through it."
— LAPD Deputy Chief Robert Arcos
RELATED STORY: Did the LA County Sheriff's Department, ICE detain inmates for too long? A federal court thinks so
LAPD officials and city leaders say ICE is a necessary partner on such operations, and they are limited in their ability to tell their federal counterparts what to do.
"We don't have control (over) everyone who participates in those task forces," said Jeff Gorell, the mayor's adviser on homeland security and public safety issues.
ICE's purpose in a task force might include being a "subject matter expert" that can provide information on "travel and immigration status," Gorell said.
The mayor's aides and LAPD officials point to stronger language in the chief's directive prohibiting local officers' participation in task force operations that are primarily aimed at immigration enforcement. The LAPD also must regularly report to the Police Commission about the activities of the task forces, including the number of immigration-related arrests that result from them.
Arcos said that with the new directive, "we've strengthened the language and understanding about these task forces, that they stay solely within that scope of work."
"We are doing everything we possibly can to exclude any type of collateral arrests," he said.
The LAPD "will not participate if (federal officials) plan to make civil immigration enforcement arrests as part of the operation," he said.
RELATED STORY: San Gabriel city leaders concerned after police strike up enforcement agreement with ICE
Arcos also said that "what our task force partners do outside of our joint investigations or joint operations is difficult to limit."
"They have the authority and jurisdiction to enforce immigration or other federal laws," he said. "We, however, do what we can to ensure our officers are not participating in civil immigration enforcement and that federal agencies do not do so when conducting a joint operation with our participation."
Are 'collateral arrests' inevitable?
Immigrant rights advocates say because ICE's job is to enforce immigration laws, there will inevitably be "collateral arrests" during joint operations, so the LAPD's policies around joint task forces need to be as strong as possible.
"Our concern is that if the LAPD doesn't create the strictest possible policy to completely disentangle police from ICE, that under the current administration — with its anti-immigrant rhetoric — that the LAPD, unintentionally and very much to the contrary of LAPD philosophy, may end up in operations that associate the LAPD with civil immigration enforcement arrest," Loyola Law School Professor Kathleen Kim said.
In this Tuesday, Feb. 7, 2017, photo released by U.S. Immigration and Customs Enforcement shows foreign nationals being arrested this week during a targeted enforcement operation conducted by U.S. Immigration and Customs Enforcement (ICE) aimed at immigration fugitives, re-entrants and at-large criminal aliens in Los Angeles. Immigrant advocates on Friday, Feb. 10, 2017, decried a series of arrests that federal deportation agents said aimed to round up criminals in Southern California but they believe mark a shift in enforcement under the Trump administration. (Charles Reed/U.S. Immigration and Customs Enforcement via AP) ORG XMIT: LA513
Kim is part of the Coalition for a Safe LA for All, a group that has been at the table with the LAPD and city for the past year to discuss its immigration-related policies. She also served on the Los Angeles Police Commission from 2013 until 2016.
Kim said that if the LAPD wants to continue working with ICE in joint task force operations, there are a number checks and balances that could be used, that might include "vetting" by the Police Commission.
"If LAPD policy was violated due to its work with ICE, then the LAPD and the Police Commission would need to seriously rethink and perhaps withdraw from future joint operations," she said.
Kim acknowledged that task forces are a "thorny area" for the LAPD, but the coalition's "concern is … under the current administration, joint operations … may inevitably co-opt LAPD into being a bystander or at least appearing as a partner to immigration enforcement efforts."
"There have been many positive steps taken in the directive to disentangle the department's officers from immigration enforcement," Kim said, but the directive needs to go further, and "in an ideal world there would be no cooperation in investigations between HSI (Homeland Security Investigations) or ICE and LAPD."
While department officials, immigrant rights advocates and city leaders say they will keep talking over potential revisions to LAPD's policies around this and other issues — including the collection of information from immigrants, and ICE's access to LAPD jails — the directive does mark a notable shift in a policy that will directly address the type of worries that Mireles, the Highland Park school director, recounted about the LAPD's "place of birth" questions.
Under Beck's directive, the question will be dropped as a routine query on the LAPD's "field interview" card, although officers may still ask the question in some limited scenarios.
"If LAPD policy was violated due to its work with ICE, then the LAPD and the Police Commission would need to seriously rethink and perhaps withdraw from future joint operations."
— Loyola Law School Professor Kathleen Kim
The 'place of birth' question
Beck writes that the new procedures were implemented for the "place of birth" question "to minimize the potential misperception and possible degradation of public trust."
Mireles, Academia Avance's executive director, has seen that erosion first-hand.
"You told us that was not what they are doing," he recalls one of the students asking him. "I'm told on the news, by the mayor on TV, and the news, how we're going to not have LAPD get involved in immigration issues."
LAPD officials acknowledged such moments.
Demonstrators urging the Democratic Party to protect the Deferred Action for Childhood Arrivals Act (DACA) rally outside the office of California Democratic Sen. Dianne Feinstein in Los Angeles Wednesday, Jan. 3, 2018. (AP Photo/Reed Saxon)
"People have anxiety and concern about being questioned, especially about place of birth," Arcos said, so it made "sense and it was very reasonable" to adopt the new policy restricting the collection of that data.
Gorell said the LAPD asking the question of "place of birth" was potentially having "a chilling effect on people's interest in coming out to be victims or witnesses in a report."
Under the new policy, officers can still ask for place-of-birth information. For example, while victims, witnesses and "temporarily detained suspects," will generally not be asked the question, officers can still do so if it is necessary to have that information to use in a criminal investigation.
RELATED STORY: Eric Holder, LAPD chief say 'sanctuary state' bill will restore trust between immigrants, police
The LAPD will also be able to ask for place-of-birth information from those who are arrested, when it is necessary to book or process the person for arrest, comply with consular notification obligations, to investigate a crime, or if it is required by law.
Immigrant rights advocates fought to limit the LAPD from collecting birthplace data, and say it is not as innocuous as it sounds. ICE officials have been known to use this information to support their deportation efforts, and the LAPD may inadvertently play a role in helping with civil immigration enforcement, according to advocates.
Emi MacLean, a staff attorney for the National Day Laborer Organizing Network, said an immigrant's admission of their place of birth can be used as a way to "identify if someone is undocumented … and to justify the deportation."
Other local "jurisdictions" that cooperate more with federal immigration officials appoint "ICE liaisons" whose primary duty often is to "identify people who are not born in the United States who come into contact with the local law enforcement agencies and turn that information over to ICE," according to MacLean.
"That demonstrates ICE values that information very highly," she said.
Arcos said there was initially "disagreement" over whether this question should be removed from the field interview card.
"It seemed like it had been on the back of our field interview card for decades," Arcos said.
The policy change represents "a good way of showing trust with one another on this," he said.
Staff writer Brenda Gazzar contributed to this story.
Elizabeth Chou
Elizabeth Chou has reported on Los Angeles City Hall government and politics since 2013, first with City News Service, and now the Los Angeles Daily News since the end of 2016. She grew up in the Los Angeles area, and formerly a San Gabriel Valley girl. She now resides in the other Valley, and is enjoying exploring her new San Fernando environs. She previously worked at Eastern Group Publications, covering Montebello, Monterey Park, City of Commerce, and Vernon.
Follow Elizabeth Chou	@reporterliz
More in Local News
Fire rips through downtown LA building, threatens others
Photos: Kobe Bryant will live on in inspired murals dotting Southern California
Former off-duty LAPD officer on trial in deadly 2015 Pomona shooting says victim sexually assaulted him


I evaluated 36 different companies this week to determine whether they are suitable for Defensive Investors, those unwilling to do substantial research, or Enterprising Investors, those who are willing to do such research. I also put each company through the ModernGraham valuation model based on Benjamin Graham's value investing formulas in order to determine an intrinsic value for each. Out of those 36 companies, only 14 were found to be undervalued or fairly valued and suitable for either Defensive or Enterprising Investors. Therefore, these 14 companies are the best undervalued stocks of the week.
Dollar General Corp. is suitable for the Enterprising Investor but not the more conservative Defensive Investor. The Defensive Investor is concerned with the low current ratio, insufficient earnings stability over the last ten years, and the poor dividend history, and the high PEmg and PB ratios. The Enterprising Investor is only concerned with the level of debt relative to the net current assets. As a result, all Enterprising Investors following the ModernGraham approach should feel comfortable proceeding with the analysis.
As for a valuation, the company appears to be Undervalued after growing its EPSmg (normalized earnings) from $2.07 in 2013 to an estimated $3.9 for 2017. This level of demonstrated earnings growth outpaces the market's implied estimate of 7.7% annual earnings growth over the next 7-10 years. As a result, the ModernGraham valuation model, based on the Benjamin Graham value investing formula, returns an estimate of intrinsic value above the price.
Hanesbrands Inc. is suitable for the Enterprising Investor but not the more conservative Defensive Investor. The Defensive Investor is concerned with the poor dividend history, and the high PEmg and PB ratios. The Enterprising Investor is only concerned with the level of debt relative to the net current assets. As a result, all Enterprising Investors following the ModernGraham approach should feel comfortable proceeding with the analysis.
As for a valuation, the company appears to be Undervalued after growing its EPSmg (normalized earnings) from $0.46 in 2012 to an estimated $1.16 for 2016. This level of demonstrated earnings growth outpaces the market's implied estimate of 6.71% annual earnings growth over the next 7-10 years. As a result, the ModernGraham valuation model, based on the Benjamin Graham value investing formula, returns an estimate of intrinsic value above the price.
Disclaimer:The author held a long position in WestRock Inc (WRK) but did not hold a position in any other company mentioned in this article at the time of publication and had no intention of changing that position within the next 72 hours. See my current holdings here. This article is not investment advice; any reader should speak to a registered investment adviser prior to making any investment decisions. ModernGraham is not affiliated with the company in any manner. Please be sure to review our detailed disclaimer.


We are confronted by ruthless Islamist death cults that pervert the rules of war to achieve victory and have no respect for basic humanity.
Military planners know from conflicts in Iraq, Afghanistan, Somalia and elsewhere that terrorist organizations use a form of hybrid warfare combining terror with more traditional structures found in armed forces to even the odds against technologically superior forces reluctant to risk civilian casualties. Headquarters are placed around, or even within, schools and hospitals. Civilians are prevented from leaving conflict zones. Combatants deliberately dress in civilian clothes, and embed fighting units in homes. Islamic State uses these tactics to slaughter innocent civilians and commit savage acts to increase human suffering in flagrant violation of any moral code.
Rooted in democracies that promote the rule of law, our own militaries will never abandon the values that define us. However, the current coalition rules of engagement well exceed the standards of law for the conduct of war, resulting in playing into the hands of Islamic State by providing it time and freedom of action to continue its atrocities.
These self-imposed restrictions are a conscious political choice and not a legal obligation. They are the result of twisted narratives propagated by our enemies and reflected and amplified to a disturbing extent by international organizations and NGOs.
Here Israel's experience serves as a cautionary tale. The U.N. Human Rights Council, and several international NGOs, strongly criticized Israel's conduct during the 2014 Gaza conflict it fought against Hamas' Islamic extremists. As part of an independent team of military experts from democratic countries examining that conflict earlier this year, we found the opposite — namely that the Israel Defense Forces' actions to prevent collateral damage were so extensive, over and above the requirements of the Law of Armed Conflict, that they would curtail the effectiveness of our own militaries if we were forced to apply the same cautions to the fight against Islamic State.
Unlike the Islamic State, or in Israel's case — Hamas — our militaries abide by the Law of Armed Conflict, the rules that govern warfare and seek to mitigate its worst excesses. However, we are faced with brutal opponents on complex battlefields who deliberately seek the most horrific means to slaughter civilian populations they hide among for the purposes of propaganda.
Misguided and ill-informed politicians and international institutions such as the United Nations, the International Criminal Court and NGOs in the West often amplify narratives about the realities of these conflicts that are not only reflective of the prism through which those who seek us harm would like our actions to be viewed, but frankly are illiterate when it comes to the military and legal realities of these fights.
To prevail in the battle against Islamic extremists, be they Islamic State or Hamas, we must counter their corrosive propaganda about the actions of our troops and those of our allies, which our enemies deploy in an attempt to use these slanderous sentiments in the international political arena to constrain us in a way they could never achieve when facing our troops on a battlefield.
Lt. Gen David Deptula and Col. Richard Kemp are part of the High Level Military Group (HLMG) that consists of retired senior military officers and foreign affairs officials from democratic countries.


text:
Listed companies' analysis | Ranking | Industry ratios | Ratios (SIGA) | Statements (SIGA)
SIGA Technologies Inc. (SIGA) financial statements (2022 and earlier)
Business Address 31 EAST 62ND STREET
Cash, cash equivalents, and short-term investments 118 65 101 20 29 113 100
Cash and cash equivalents 118 65 101 20 29 113 100
Restricted cash and investments 96 11 11 10
Receivables 3 4 2 2 3 4 0
Inventory, net of allowances, customer advances and progress billings 20 10 3 3 26 12 19
Inventory 20 10 3 3 26 12 19
Other undisclosed current assets 2 5 4 2 1 1 11
Total current assets: 144 180 121 37 69 129 130
Property, plant and equipment 2 3 0 0 0 0 1
Intangible assets, net (including goodwill) 1 1 1 1 1 1 1
Goodwill 1 1 1 1 1 1 1
Restricted cash and investments 3 68 7 17 4
Deferred costs 97 73 53 33
Other noncurrent assets 1 1 1 1 1 2 2
Deferred tax assets, net ✕ ✕ 12 2
Other undisclosed noncurrent assets 14 (4)
Total noncurrent assets: 6 19 82 107 92 56 37
TOTAL ASSETS: 150 199 203 145 161 186 166
Accounts payable and accrued liabilities 10 12 11 7 7 7 6
Accounts payable 1 3 2 1 3 4 3
Accrued liabilities 9 9 10 5 5 3 2
Debt 80 2
Other undisclosed current liabilities 7 (0)
Total current liabilities: 10 92 11 7 14 7 7
Liabilities, other than long-term debt 378 368 256 6
Deferred revenue and credits ✕ ✕ ✕ 378 367 255 0
Other undisclosed noncurrent liabilities 10 9 89 83 67 207 399
Total noncurrent liabilities: 10 9 89 461 435 463 405
Total liabilities: 20 101 101 468 448 470 413
Stockholders' equity attributable to parent 130 98 103 (323) (287) (284) (247)
Accumulated deficit (95) (123) (116) (537) (501) (461) (422)
Total stockholders' equity: 130 98 103 (323) (287) (284) (247)
TOTAL LIABILITIES AND EQUITY: 150 199 203 145 161 186 166
Revenues 125 27 477
Cost of revenue (16) (2) (95) (1)
Cost of goods and services sold (15) (1)
Gross profit: 109 25 382 (1)
Operating expenses (25) (29) (122) (31) (46) (39) (213)
Other undisclosed operating income 2 95 13 15 8 3
Operating income (loss): 85 (2) 355 (19) (31) (31) (210)
Nonoperating income 1 3 79 0 0 0 0
Interest and debt expense (8) (16) (15) (15) (2) (0) (0)
Other undisclosed income (loss) from continuing operations before equity method investments, income taxes (4) 5 (7) (5) (6) (8) (2)
Income (loss) from continuing operations before income taxes: 74 (10) 412 (38) (40) (39) (212)
Income tax expense (benefit) (17) 3 10 2 (0) (0) (54)
Net income (loss) available to common stockholders, diluted: 56 (7) 422 (36) (40) (39) (265)
Net income (loss): 56 (7) 422 (36) (40) (39) (265)
Comprehensive income (loss), net of tax, attributable to parent: 56 (7) 422 (36) (40) (39) (265)


text:
CVD Equipment Corporation to Announce 2022 Third Quarter Results
By: CVD Equipment Corporation via Business Wire
CVD Equipment Corporation (NASDAQ: CVV), a leading provider of chemical vapor deposition systems, announced today that it will release its 2022 third quarter results after markets close on Monday November 14, 2022. CVD management will hold a conference call to discuss its results at 5:00 pm (Eastern Time) that day.
To participate in the live conference call, please dial toll free (888) 645-4404 or international (862) 298-0702. A telephone replay will be available for 7 days. To access the replay, dial (877) 660-6853 or international (201) 612-7415. The replay passcode is 13734283.
A live and archived webcast of the call will also be available on the company's website at www.cvdequipment.com/events. The archived webcast will be available at the same location approximately two hours following the end of the live event.
About CVD Equipment Corporation
CVD Equipment Corporation (NASDAQ: CVV) designs, develops, and manufactures a broad range of chemical vapor deposition, gas control, and other state-of-the-art equipment and process solutions used to develop and manufacture materials and coatings for industrial applications and research. Our products are used in production environments as well as research and development centers, both academic and corporate. Major target markets for our business include advanced nanomaterials, batteries and silicon carbide for high power electronics; aerospace (such as gas turbine engines and structural components); medical devices (such as implants); advanced semiconductor devices and silicon for solar cells; and carbon nanotubes and nanowires. Through its application laboratory, the Company provides process development support and process startup assistance with the focus on enabling tomorrow's technologies™. Its wholly owned subsidiary, CVD Materials Corporation, provides advanced materials and metal surface treatments and coatings to serve demanding applications in the electronic, biomedical, petroleum, pharmaceutical, and many other industrial markets.
Richard Catalano, Vice President and Chief Financial Officer
investorrelations@cvdequipment.com


Wee to Premier Face Painting - A STEP ABOVE THE REST!
We are honest and dependable artists that will provide you with High Quality Face Painting, Amazing Airbrush Temporary Tattoos, and Fun Balloon Twisting and more.
When planning your next child's party or celebration think about adding Face Painting as a Fun and Exciting form of entertainment. Kids as well as adults are captivated and excited to participate in this Fun activity. The magic begins when the brush touches the face and your child and guests are transformation into the most amazing butterflies, playful kittens, brave knights, enchanted princesses and fairies, dragons, super heroes - the possibilities are 't have to settle for Average Face Painting Discover the difference of Premier Quality Face Painting. - We are the BEST in Louisville KY area!
Now that the weather is getting warmer Airbrush Temporary Tattoos are great Fun too. Best of all they will last for days and they won't sweat off during active play or hot weather and your party guest will have the tattoos for a couple of days to remember your party.
We can create fun with our balloon twisting. Hire a balloon twister and the fun begins with the first twist of the balloon. Your guests will delight in seeing all the balloon creations that we can make. Balloon twisting is a great form of walk around entertainment.
Premier Face Painting is there to help you create a unique keepsake of a very special time! Having a Maternity Art Portrait offers an opportunity to capture the moment of this precious time by decorating your pregnant belly with original artwork. Although the paint will wash away, the memory and the photographs will bring a lifetime of smiles to you and your family members and to share with your child in the future.
Services include: The most amazing Face Painting Designs, Cheek Art, Body Painting, Maternity Art Portraits, Airbrush Temporary Tattoo's , Glitter Tattoos, Balloons Animals, Children Theme Parties.
I do not use acrylic paint - because it is CRAFT paint and it is not meant to be use on the skin! Don't be fooled by other face painters that use acrylics and say it is safe to use. The manufactures of acrylic craft paint did not formulate their products for face painting nor are they FDA approved to be safe to use on the skin for prolong periods of time. Acrylic paints contain non FDA approved chemicals and colorants such as nickel which can cause skin rashes.


The celebration of the winners of the 2015 COIN-OR Cup was held on Monday evening at the Field House bar on Filbert Street.
high-level, algebraic syntax. JuMP is one of the few open-source modeling languages to implement automatic differentiation. Via a set of convenient interfaces, JuMP makes it easy for users to call COIN-OR solvers such as Clp, Cbc, and Ipopt, as well as other open-source solvers.
The committee found that JuMP significantly simplifies the development of optimization models and software by eliminating the need for commercial modeling environments and by providing state-of-the-art reverse-mode automatic differentiation.
Congratulations to the winners! They each receive a tacky Philadelphia souvenir cup filled with COIN-OR special chocolate coins. You can get the coins for yourself by stopping by the COIN-OR boot in the exhibit hall. Grab a handful–we've got plenty!
« My multi-start strategy for INFORMS meetings	» How Green is my Conference?


text:
Global Energy Center Home
Downstream Oil Theft
Nuclear Energy and National Security Coalition (NENSC)
Women Leaders in Energy Fellowship
Follow the Global Energy Center:
European Energy Security and Transatlantic Cooperation
By Richard L. Morningstar, András Simonyi, Olga Khakova, and Irina Markina
The transatlantic community has made significant progress leveraging global energy resources to increase energy security, thanks to improvements in renewable energy, energy efficiency, shale oil extraction, alternative source and route development, and infrastructure. However, European energy security remains a challenge, as malign actors use energy for geopolitical coercion, communities around the globe grapple with the realities of climate change, and geopolitical conflicts threaten the security of supply and access to sustainable resource development.
In their new issue brief, Atlantic Council Global Energy Center Founding Chairman Richard L. Morningstar, Senior Fellow András Simonyi, Associate Director for European Energy Security Olga Khakova, and Senior Fellow Irina Markina examine the current energy security landscape in Europe and assess the state of transatlantic cooperation. They argue that transatlantic cooperation with a focus on energy security will be essential to addressing global challenges and should be prioritized by US and EU leadership, since energy security translates into national, political, and economic security on both sides of the Atlantic.
Richard L. Morningstar
Andras Simonyi
Olga Khakova
US Nuclear Energy Leadership: Innovation and the Strategic Global Challenge
By Atlantic Council Task Force on US Nuclear Energy Leadership
Throughout 2018, the Atlantic Council Global Energy Center convened a "Task Force on US Nuclear Energy Leadership," which comprised civilian and military experts in foreign policy, defense, and nuclear energy. Senators Mike Crapo (R-ID) and Sheldon Whitehouse (D-RI) served as honorary co-chairs of the Task Force. This report, entitled "US Nuclear Energy Leadership: Innovation and the Strategic Global Challenge," is the result of these efforts.
The Task Force found that a flourishing domestic nuclear energy sector is critical to US national security, both in the interconnections between military and civilian uses of nuclear energy, as well as in foreign policy. This report recommends maintaining and expanding the current nuclear fleet; creating a conducive regulatory environment for innovation and new technologies; and encouraging and facilitating nuclear energy exports.
Robert F. Ichord
Randolph Bell
Jennifer T. Gordon
NENSC
Does Money Grow on Trees? Restoration Financing in Southeast Asia
By Prajwal Baral, Mikkel Larsen, Matthew Archer, PhD
In global discussions over climate change and the policy interventions needed to address it, the role of land use – including forests – is often overlooked. Given its unique role as both a potential source of emissions – as well as storage – for carbon, the land use sector may play a crucial role in the world's success or failure in avoiding dangerous levels of climate change over this century. Nowhere is the pivotal role of land use more apparent than in tropical forests, which have gone from serving as sinks for global carbon emissions to being a source of them amid rampant deforestation. Southeast Asia has witnessed some of the world's most significant tropical deforestation over the past several decades, and is currently a significant contributor to the roughly eight percent of total global greenhouse gas emissions that tropical deforestation represents.
In a new paper, "Does Money Grow on Trees?: Restoration Financing in Southeast Asia," authors Prajwal Baral, Mikkel Larsen, and Matthew Archer provide a compelling analysis of the current state of tropical deforestation in Southeast Asia, including its drivers, extant efforts to mitigate it, barriers to effective reforestation finance, and possible new policy and market tools that could finally tip economic incentives towards reforestation rather than deforestation.
From Paris to Beijing: Implementing the Paris Agreement in the People's Republic of China
By Craig A. Hart
There have been many interpretations regarding the exact nature of China's obligations in reducing emissions under the 2015 Paris Agreement. The e is complicated by the inherent difficulties of implementing climate policies across a vast region where policy execution requires cooperation and coordination among offices of the Chinese central government, its diverse subnational governments, and many other stakeholders.
In his paper, "From Paris to Beijing: Implementing the Paris Agreement," Craig A. Hart identifies the disparate national and local government offices that have varied roles in setting emissions targets in order to provide context for the challenges that China faces in fulfilling its climate commitments. Finally, Hart portrays the nongovernmental organizations—both entrepreneurs as well as local environmental activists—that are also advocating on climate policy issues. Hart's analysis makes the case for greater transparency at all levels of government, the elimination of subsidies—with the exception of low-carbon energy and technology, the alignment of climate policy with China's trade stance, and inclusion of the Chinese public on climate policy debates.
Meeting Asian LNG Demand
By Jean-François Seznec
Demand for liquefied natural gas (LNG) has increased in recent years, as it has become increasingly available, affordable, and more environmentally sustainable than coal and crude oil. While Asian markets have become key importers of LNG, piping LNG to many countries in East Asia has presented great difficulties that have required, instead, transport by sea.
Jean-Francois Seznec's paper, "Meeting Asian Energy Demand," explores the many ways in which demand for LNG has had an impact on shipping routes as well as trade issues between the suppliers and importers of natural gas. Seznec presents the story of LNG transport against the backdrop of geopolitical tensions and diplomatic relations. Finally, Seznec evaluates countries that may soon come online as global suppliers of LNG, and assesses the political implications of countries in Africa, as well as Canada and Israel joining the ranks of exporters of natural gas.
Ready for Take Off? Aviation Biofuels Past, Present, and Future
By David Hitchcock
Most consumers in the United States are familiar with the advances in the electrification of cars and, perhaps to a lesser extent, with innovations in automotive biofuel. However, the importance of powering the aviation sector (both military and commercial) through sustainable fuels cannot be overstated. David Hitchcock's paper, "Ready for Takeoff? Aviation Biofuels Past, Present, and Future," provides a keen look at the history of biofuels, current uses of biofuel, and investments in research and development that will yield future dividends.
Hitchcock explains the context of US policy on biofuels, anchored in the revamped Renewable Fuel Standard as part of the 2007 Energy Policy Act, and also examines the interplay between federal and state legislation, using the California Low Carbon Fuel Standard as a case study. Finally, Hitchcock provides an overview of some of the most exciting research in the field, highlighting the Sustainable Bioenergy Research Consortium and its innovations in producing biofuel through aquaculture.
Sovereign Investors: A Means for Economic Diversification?
By Bina Hussein
As oil has faced increasing competition from other energy sources—from natural gas to renewables, many observers are questioning the future of oil demand. Against this backdrop of uncertainty, a number of sovereign wealth funds—which had originally been created as holders of oil wealth, now have mandates that include economic diversification.
In her report, "Sovereign Investors: A Means for Economic Diversification?" Bina Hussein provides case studies of four sovereign wealth funds: the Kuwait Investment Authority, the UAE's Mubadala Investment Company, the Qatar Investment Authority, and Saudi Arabia's Public Investment Fund. As an analytic counterpoint, Hussein also examines the case of Singapore's Temasek. Throughout, Hussein argues for transparency metrics and measures in governance that will help sovereign investors build partnerships in a wide range of industries, bolstering countries' efforts to move beyond reliance on oil.
Bina Hussein
The Future of Shale
By Ellen Scholl
Over the last ten years, the United States has become the world's leading producer of oil and gas, going from energy import dependence to energy dominance. This shift is due to the ability to produce from shale plays, a story which started in Texas and grew to have global ramifications. In a new report, The Future of Shale: The US Story and Its Implications, Global Energy Center Senior Fellow Ellen Scholl looks at the factors which enabled the rise of oil and gas production from shale deposits, focusing on the developments which have transpired in Texas.
This Global Energy Center report examines the Texas experience to draw lessons learned for countries hoping to utilize their shale resource potential and implications for global energy markets and geopolitics. The report concludes that the US case illustrates the challenges of operating in both a rural and an urban environment, underscores the unique advantages of the enabling ecosystem in the country, and demonstrates the importance of size and scale.
Ellen Scholl
By David Koranyi
As energy markets and technologies rapidly change, international oil companies (IOCs) are facing a set of interconnected challenges that will fundamentally affect their business models. From changes in the supply and demand picture, to shifts in how energy is produced and consumed, to public pressure to decrease greenhouse gas footprints, companies have a wide range of issues to consider as they decide how to prepare for an unpredictable future. In a new issue brief, "Navigating the Energy Transition: International Oil Company Diversification Strategies," Global Energy Center Senior Fellow David Koranyi provides a macro picture of select IOC's strategic (re)thinking and explores some of the strategies IOCs have undertaken to diversify their portfolios and prepare for the unfolding energy transition.
IOCs have diverging views on many of the issues at hand and have chosen to address the energy transition in different ways, so which strategies will ultimately be successful? Only time will tell which companies will benefit from the current energy transition and which ones will struggle to cope with the disruptions to come, and to what extent the oil industry can play a constructive role in developing a new, more climate friendly energy system for the twenty-first century.
David Koranyi
Three Pipelines and Three Seas: BRUA, TAP, the IAP and Gasification in Southeast Europe
By John M. Roberts
In a new report, Three Pipelines and the Three Seas: BRUA, TAP, the IAP and Gasification in Southeast Europe, Global Energy Center Fellow John Roberts takes a comprehensive look at the state of gas infrastructure and interconnections throughout southeast Europe.
Integration in the region, which includes countries that were formerly members of the Warsaw Pact, is crucially important not just for economic development and the further integration of the European gas market, but also as a bulwark against reliance on Russian gas supplies. Interconnection offers options and liquidity—crucial for competition and energy security.
The Atlantic Council's Global Energy Center promotes energy security by working alongside government, industry, civil society, and public stakeholders to devise pragmatic solutions to the geopolitical, sustainability, and economic challenges of the changing global energy landscape.
In its third year, the Global Energy Center has become a go-to policy organization for governments, industry, and civil society to understand and navigate the energy transition, with the ultimate goal of helping shape a world with secure and sustainable energy.
The Global Energy Center's work provides pragmatic solutions to the challenges presented by the rapidly changing energy landscape, working to enhance energy security for countries and individuals around the world.
Learn More Our Staff


In dependent styles, cs:link must be used with rel set to "independent-parent", with the URI of the independent parent style set on href. In addition, cs:link should not be used with rel set to "template".
Note that even when name-as-sort-order changes the name-part order, the display order is not necessarily the same as the sorting order for names containing particles and suffixes (see Name-part order). Also, name-as-sort-order only affects names written in the latin or Cyrillic alphabets. Names written in other alphabets (e.g. Asian scripts) are always displayed with the family name preceding the given name.
Sets the delimiter for name-parts that have switched positions as a result of name-as-sort-order. The default value is ", " ("Doe, John"). As is the case for name-as-sort-order, this attribute only affects names written in the latin or Cyrillic alphabets.