text:
using System;
using System.Globalization;
using System.Runtime.InteropServices;

namespace Fusion.Mathematics
{
    /// <summary>
    /// Represents a four dimensional mathematical vector.
    /// </summary>
    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    public struct Byte4 : IEquatable<Byte4>, IFormattable
    {
        /// <summary>
        /// The size of the <see cref = "Byte4" /> type, in bytes.
        /// </summary>
        public static readonly int SizeInBytes = Marshal.SizeOf(typeof (Byte4));

        /// <summary>
        /// A <see cref = "Byte4" /> with all of its components set to zero.
        /// </summary>
        public static readonly Byte4 Zero = new Byte4();

        /// <summary>
        /// The X unit <see cref = "Byte4" /> (1, 0, 0, 0).
        /// </summary>
        public static readonly Byte4 UnitX = new Byte4(1, 0, 0, 0);

        /// <summary>
        /// The Y unit <see cref = "Byte4" /> (0, 1, 0, 0).
        /// </summary>
        public static readonly Byte4 UnitY = new Byte4(0, 1, 0, 0);

        /// <summary>
        /// The Z unit <see cref = "Byte4" /> (0, 0, 1, 0).
        /// </summary>
        public static readonly Byte4 UnitZ = new Byte4(0, 0, 1, 0);

        /// <summary>
        /// The W unit <see cref = "Byte4" /> (0, 0, 0, 1).
        /// </summary>
        public static readonly Byte4 UnitW = new Byte4(0, 0, 0, 1);

        /// <summary>
        /// A <see cref = "Byte4" /> with all of its components set to one.
        /// </summary>
        public static readonly Byte4 One = new Byte4(1, 1, 1, 1);

        /// <summary>
        /// The X component of the vector.
        /// </summary>
        public byte X;

        /// <summary>
        /// The Y component of the vector.
        /// </summary>
        public byte Y;

        /// <summary>
        /// The Z component of the vector.
        /// </summary>
        public byte Z;

        /// <summary>
        /// The W component of the vector.
        /// </summary>
        public byte W;

        /// <summary>
        /// Initializes a new instance of the <see cref = "Byte4" /> struct.
        /// </summary>
        /// <param name = "value">The value that will be assigned to all components.</param>
        public Byte4(byte value)
        {
            X = value;
            Y = value;
            Z = value;
            W = value;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref = "Byte4" /> struct.
        /// </summary>
        /// <param name = "x">Initial value for the X component of the vector.</param>
        /// <param name = "y">Initial value for the Y component of the vector.</param>
        /// <param name = "z">Initial value for the Z component of the vector.</param>
        /// <param name = "w">Initial value for the W component of the vector.</param>
        public Byte4(byte x, byte y, byte z, byte w)
        {
            X = x;
            Y = y;
            Z = z;
            W = w;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref = "Byte4" /> struct.
        /// </summary>
        /// <param name = "x">Initial value for the X component of the vector.</param>
        /// <param name = "y">Initial value for the Y component of the vector.</param>
        /// <param name = "z">Initial value for the Z component of the vector.</param>
        /// <param name = "w">Initial value for the W component of the vector.</param>
        public Byte4(int x, int y, int z, int w)
        {
            X = (byte)x;
            Y = (byte)y;
            Z = (byte)z;
            W = (byte)w;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref = "Byte4" /> struct.
        /// </summary>
        /// <param name = "values">The values to assign to the X, Y, Z, and W components of the vector. This must be an array with four elements.</param>
        /// <exception cref = "ArgumentNullException">Thrown when <paramref name = "values" /> is <c>null</c>.</exception>
        /// <exception cref = "ArgumentOutOfRangeException">Thrown when <paramref name = "values" /> contains more or less than four elements.</exception>
        public Byte4(byte[] values)
        {
            if (values == null)
                throw new ArgumentNullException("values");
            if (values.Length != 4)
                throw new ArgumentOutOfRangeException("values",
                                                      "There must be four and only four input values for Byte4.");

            X = values[0];
            Y = values[1];
            Z = values[2];
            W = values[3];
        }

        /// <summary>
        /// Gets or sets the component at the specified index.
        /// </summary>
        /// <value>The value of the X, Y, Z, or W component, depending on the index.</value>
        /// <param name = "index">The index of the component to access. Use 0 for the X component, 1 for the Y component, 2 for the Z component, and 3 for the W component.</param>
        /// <returns>The value of the component at the specified index.</returns>
        /// <exception cref = "System.ArgumentOutOfRangeException">Thrown when the <paramref name = "index" /> is out of the range [0, 3].</exception>
        public byte this[int index]
        {
            get
            {
                switch (index)
                {
                    case 0:
                        return X;
                    case 1:
                        return Y;
                    case 2:
                        return Z;
                    case 3:
                        return W;
                }

                throw new ArgumentOutOfRangeException("index", "Indices for Byte4 run from 0 to 3, inclusive.");
            }

            set
            {
                switch (index)
                {
                    case 0:
                        X = value;
                        break;
                    case 1:
                        Y = value;
                        break;
                    case 2:
                        Z = value;
                        break;
                    case 3:
                        W = value;
                        break;
                    default:
                        throw new ArgumentOutOfRangeException("index", "Indices for Byte4 run from 0 to 3, inclusive.");
                }
            }
        }

        /// <summary>
        /// Creates an array containing the elements of the vector.
        /// </summary>
        /// <returns>A four-element array containing the components of the vector.</returns>
        public byte[] ToArray()
        {
            return new byte[] {X, Y, Z, W};
        }

        /// <summary>
        /// Adds two vectors.
        /// </summary>
        /// <param name = "left">The first vector to add.</param>
        /// <param name = "right">The second vector to add.</param>
        /// <param name = "result">When the method completes, contains the sum of the two vectors.</param>
        public static void Add(ref Byte4 left, ref Byte4 right, out Byte4 result)
        {
            result = new Byte4(left.X + right.X, left.Y + right.Y, left.Z + right.Z, left.W + right.W);
        }

        /// <summary>
        /// Adds two vectors.
        /// </summary>
        /// <param name = "left">The first vector to add.</param>
        /// <param name = "right">The second vector to add.</param>
        /// <returns>The sum of the two vectors.</returns>
        public static Byte4 Add(Byte4 left, Byte4 right)
        {
            return new Byte4(left.X + right.X, left.Y + right.Y, left.Z + right.Z, left.W + right.W);
        }

        /// <summary>
        /// Subtracts two vectors.
        /// </summary>
        /// <param name = "left">The first vector to subtract.</param>
        /// <param name = "right">The second vector to subtract.</param>
        /// <param name = "result">When the method completes, contains the difference of the two vectors.</param>
        public static void Subtract(ref Byte4 left, ref Byte4 right, out Byte4 result)
        {
            result = new Byte4(left.X - right.X, left.Y - right.Y, left.Z - right.Z, left.W - right.W);
        }

        /// <summary>
        /// Subtracts two vectors.
        /// </summary>
        /// <param name = "left">The first vector to subtract.</param>
        /// <param name = "right">The second vector to subtract.</param>
        /// <returns>The difference of the two vectors.</returns>
        public static Byte4 Subtract(Byte4 left, Byte4 right)
        {
            return new Byte4(left.X - right.X, left.Y - right.Y, left.Z - right.Z, left.W - right.W);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <param name = "result">When the method completes, contains the scaled vector.</param>
        public static void Multiply(ref Byte4 value, int scale, out Byte4 result)
        {
            result = new Byte4(value.X*scale, value.Y*scale, value.Z*scale, value.W*scale);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <returns>The scaled vector.</returns>
        public static Byte4 Multiply(Byte4 value, int scale)
        {
            return new Byte4(value.X*scale, value.Y*scale, value.Z*scale, value.W*scale);
        }

        /// <summary>
        /// Modulates a vector with another by performing component-wise multiplication.
        /// </summary>
        /// <param name = "left">The first vector to modulate.</param>
        /// <param name = "right">The second vector to modulate.</param>
        /// <param name = "result">When the method completes, contains the modulated vector.</param>
        public static void Modulate(ref Byte4 left, ref Byte4 right, out Byte4 result)
        {
            result = new Byte4(left.X*right.X, left.Y*right.Y, left.Z*right.Z, left.W*right.W);
        }

        /// <summary>
        /// Modulates a vector with another by performing component-wise multiplication.
        /// </summary>
        /// <param name = "left">The first vector to modulate.</param>
        /// <param name = "right">The second vector to modulate.</param>
        /// <returns>The modulated vector.</returns>
        public static Byte4 Modulate(Byte4 left, Byte4 right)
        {
            return new Byte4(left.X*right.X, left.Y*right.Y, left.Z*right.Z, left.W*right.W);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <param name = "result">When the method completes, contains the scaled vector.</param>
        public static void Divide(ref Byte4 value, int scale, out Byte4 result)
        {
            result = new Byte4(value.X/scale, value.Y/scale, value.Z/scale, value.W/scale);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <returns>The scaled vector.</returns>
        public static Byte4 Divide(Byte4 value, int scale)
        {
            return new Byte4(value.X/scale, value.Y/scale, value.Z/scale, value.W/scale);
        }

        /// <summary>
        /// Reverses the direction of a given vector.
        /// </summary>
        /// <param name = "value">The vector to negate.</param>
        /// <param name = "result">When the method completes, contains a vector facing in the opposite direction.</param>
        public static void Negate(ref Byte4 value, out Byte4 result)
        {
            result = new Byte4(-value.X, -value.Y, -value.Z, -value.W);
        }

        /// <summary>
        /// Reverses the direction of a given vector.
        /// </summary>
        /// <param name = "value">The vector to negate.</param>
        /// <returns>A vector facing in the opposite direction.</returns>
        public static Byte4 Negate(Byte4 value)
        {
            return new Byte4(-value.X, -value.Y, -value.Z, -value.W);
        }

        /// <summary>
        /// Restricts a value to be within a specified range.
        /// </summary>
        /// <param name = "value">The value to clamp.</param>
        /// <param name = "min">The minimum value.</param>
        /// <param name = "max">The maximum value.</param>
        /// <param name = "result">When the method completes, contains the clamped value.</param>
        public static void Clamp(ref Byte4 value, ref Byte4 min, ref Byte4 max, out Byte4 result)
        {
            int x = value.X;
            x = (x > max.X) ? max.X : x;
            x = (x < min.X) ? min.X : x;

            int y = value.Y;
            y = (y > max.Y) ? max.Y : y;
            y = (y < min.Y) ? min.Y : y;

            int z = value.Z;
            z = (z > max.Z) ? max.Z : z;
            z = (z < min.Z) ? min.Z : z;

            int w = value.W;
            w = (w > max.W) ? max.W : w;
            w = (w < min.W) ? min.W : w;

            result = new Byte4(x, y, z, w);
        }

        /// <summary>
        /// Restricts a value to be within a specified range.
        /// </summary>
        /// <param name = "value">The value to clamp.</param>
        /// <param name = "min">The minimum value.</param>
        /// <param name = "max">The maximum value.</param>
        /// <returns>The clamped value.</returns>
        public static Byte4 Clamp(Byte4 value, Byte4 min, Byte4 max)
        {
            Byte4 result;
            Clamp(ref value, ref min, ref max, out result);
            return result;
        }

        /// <summary>
        /// Returns a vector containing the smallest components of the specified vectors.
        /// </summary>
        /// <param name = "left">The first source vector.</param>
        /// <param name = "right">The second source vector.</param>
        /// <param name = "result">When the method completes, contains an new vector composed of the largest components of the source vectors.</param>
        public static void Max(ref Byte4 left, ref Byte4 right, out Byte4 result)
        {
            result.X = (left.X > right.X) ? left.X : right.X;
            result.Y = (left.Y > right.Y) ? left.Y : right.Y;
            result.Z = (left.Z > right.Z) ? left.Z : right.Z;
            result.W = (left.W > right.W) ? left.W : right.W;
        }

        /// <summary>
        /// Returns a vector containing the largest components of the specified vectors.
        /// </summary>
        /// <param name = "left">The first source vector.</param>
        /// <param name = "right">The second source vector.</param>
        /// <returns>A vector containing the largest components of the source vectors.</returns>
        public static Byte4 Max(Byte4 left, Byte4 right)
        {
            Byte4 result;
            Max(ref left, ref right, out result);
            return result;
        }

        /// <summary>
        /// Returns a vector containing the smallest components of the specified vectors.
        /// </summary>
        /// <param name = "left">The first source vector.</param>
        /// <param name = "right">The second source vector.</param>
        /// <param name = "result">When the method completes, contains an new vector composed of the smallest components of the source vectors.</param>
        public static void Min(ref Byte4 left, ref Byte4 right, out Byte4 result)
        {
            result.X = (left.X < right.X) ? left.X : right.X;
            result.Y = (left.Y < right.Y) ? left.Y : right.Y;
            result.Z = (left.Z < right.Z) ? left.Z : right.Z;
            result.W = (left.W < right.W) ? left.W : right.W;
        }

        /// <summary>
        /// Returns a vector containing the smallest components of the specified vectors.
        /// </summary>
        /// <param name = "left">The first source vector.</param>
        /// <param name = "right">The second source vector.</param>
        /// <returns>A vector containing the smallest components of the source vectors.</returns>
        public static Byte4 Min(Byte4 left, Byte4 right)
        {
            Byte4 result;
            Min(ref left, ref right, out result);
            return result;
        }

        /// <summary>
        /// Adds two vectors.
        /// </summary>
        /// <param name = "left">The first vector to add.</param>
        /// <param name = "right">The second vector to add.</param>
        /// <returns>The sum of the two vectors.</returns>
        public static Byte4 operator +(Byte4 left, Byte4 right)
        {
            return new Byte4(left.X + right.X, left.Y + right.Y, left.Z + right.Z, left.W + right.W);
        }

        /// <summary>
        /// Assert a vector (return it unchanged).
        /// </summary>
        /// <param name = "value">The vector to assert (unchanged).</param>
        /// <returns>The asserted (unchanged) vector.</returns>
        public static Byte4 operator +(Byte4 value)
        {
            return value;
        }

        /// <summary>
        /// Subtracts two vectors.
        /// </summary>
        /// <param name = "left">The first vector to subtract.</param>
        /// <param name = "right">The second vector to subtract.</param>
        /// <returns>The difference of the two vectors.</returns>
        public static Byte4 operator -(Byte4 left, Byte4 right)
        {
            return new Byte4(left.X - right.X, left.Y - right.Y, left.Z - right.Z, left.W - right.W);
        }

        /// <summary>
        /// Reverses the direction of a given vector.
        /// </summary>
        /// <param name = "value">The vector to negate.</param>
        /// <returns>A vector facing in the opposite direction.</returns>
        public static Byte4 operator -(Byte4 value)
        {
            return new Byte4(-value.X, -value.Y, -value.Z, -value.W);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <returns>The scaled vector.</returns>
        public static Byte4 operator *(int scale, Byte4 value)
        {
            return new Byte4(value.X*scale, value.Y*scale, value.Z*scale, value.W*scale);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <returns>The scaled vector.</returns>
        public static Byte4 operator *(Byte4 value, int scale)
        {
            return new Byte4(value.X*scale, value.Y*scale, value.Z*scale, value.W*scale);
        }

        /// <summary>
        /// Scales a vector by the given value.
        /// </summary>
        /// <param name = "value">The vector to scale.</param>
        /// <param name = "scale">The amount by which to scale the vector.</param>
        /// <returns>The scaled vector.</returns>
        public static Byte4 operator /(Byte4 value, int scale)
        {
            return new Byte4(value.X/scale, value.Y/scale, value.Z/scale, value.W/scale);
        }

        /// <summary>
        /// Tests for equality between two objects.
        /// </summary>
        /// <param name = "left">The first value to compare.</param>
        /// <param name = "right">The second value to compare.</param>
        /// <returns><c>true</c> if <paramref name = "left" /> has the same value as <paramref name = "right" />; otherwise, <c>false</c>.</returns>
        public static bool operator ==(Byte4 left, Byte4 right)
        {
            return left.Equals(right);
        }

        /// <summary>
        /// Tests for inequality between two objects.
        /// </summary>
        /// <param name = "left">The first value to compare.</param>
        /// <param name = "right">The second value to compare.</param>
        /// <returns><c>true</c> if <paramref name = "left" /> has a different value than <paramref name = "right" />; otherwise, <c>false</c>.</returns>
        public static bool operator !=(Byte4 left, Byte4 right)
        {
            return !left.Equals(right);
        }

        /// <summary>
        /// Performs an explicit conversion from <see cref = "Byte4" /> to <see cref = "Vector2" />.
        /// </summary>
        /// <param name = "value">The value.</param>
        /// <returns>The result of the conversion.</returns>
        public static explicit operator Vector2(Byte4 value)
        {
            return new Vector2(value.X, value.Y);
        }

        /// <summary>
        /// Performs an explicit conversion from <see cref = "Byte4" /> to <see cref = "Vector3" />.
        /// </summary>
        /// <param name = "value">The value.</param>
        /// <returns>The result of the conversion.</returns>
        public static explicit operator Vector3(Byte4 value)
        {
            return new Vector3(value.X, value.Y, value.Z);
        }

        /// <summary>
        /// Performs an explicit conversion from <see cref = "Byte4" /> to <see cref = "Vector4" />.
        /// </summary>
        /// <param name = "value">The value.</param>
        /// <returns>The result of the conversion.</returns>
        public static explicit operator Vector4(Byte4 value)
        {
            return new Vector4(value.X, value.Y, value.Z, value.W);
        }

        /// <summary>
        /// Returns a <see cref = "System.String" /> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref = "System.String" /> that represents this instance.
        /// </returns>
        public override string ToString()
        {
            return string.Format(CultureInfo.CurrentCulture, "X:{0} Y:{1} Z:{2} W:{3}", X, Y, Z, W);
        }

        /// <summary>
        /// Returns a <see cref = "System.String" /> that represents this instance.
        /// </summary>
        /// <param name = "format">The format.</param>
        /// <returns>
        /// A <see cref = "System.String" /> that represents this instance.
        /// </returns>
        public string ToString(string format)
        {
            if (format == null)
                return ToString();

            return string.Format(CultureInfo.CurrentCulture, "X:{0} Y:{1} Z:{2} W:{3}",
                                 X.ToString(format, CultureInfo.CurrentCulture),
                                 Y.ToString(format, CultureInfo.CurrentCulture),
                                 Z.ToString(format, CultureInfo.CurrentCulture),
                                 W.ToString(format, CultureInfo.CurrentCulture));
        }

        /// <summary>
        /// Returns a <see cref = "System.String" /> that represents this instance.
        /// </summary>
        /// <param name = "formatProvider">The format provider.</param>
        /// <returns>
        /// A <see cref = "System.String" /> that represents this instance.
        /// </returns>
        public string ToString(IFormatProvider formatProvider)
        {
            return string.Format(formatProvider, "X:{0} Y:{1} Z:{2} W:{3}", X, Y, Z, W);
        }

        /// <summary>
        /// Returns a <see cref = "System.String" /> that represents this instance.
        /// </summary>
        /// <param name = "format">The format.</param>
        /// <param name = "formatProvider">The format provider.</param>
        /// <returns>
        /// A <see cref = "System.String" /> that represents this instance.
        /// </returns>
        public string ToString(string format, IFormatProvider formatProvider)
        {
            if (format == null)
                ToString(formatProvider);

            return string.Format(formatProvider, "X:{0} Y:{1} Z:{2} W:{3}", X.ToString(format, formatProvider),
                                 Y.ToString(format, formatProvider), Z.ToString(format, formatProvider),
                                 W.ToString(format, formatProvider));
        }

        /// <summary>
        /// Returns a hash code for this instance.
        /// </summary>
        /// <returns>
        /// A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
        /// </returns>
        public override int GetHashCode()
        {
            unchecked
            {
                int hashCode = X;
                hashCode = (hashCode * 397) ^ Y;
                hashCode = (hashCode * 397) ^ Z;
                hashCode = (hashCode * 397) ^ W;
                return hashCode;
            }
        }

        /// <summary>
        /// Determines whether the specified <see cref = "Byte4" /> is equal to this instance.
        /// </summary>
        /// <param name = "other">The <see cref = "Byte4" /> to compare with this instance.</param>
        /// <returns>
        /// <c>true</c> if the specified <see cref = "Byte4" /> is equal to this instance; otherwise, <c>false</c>.
        /// </returns>
        public bool Equals(Byte4 other)
        {
            return other.X == X && other.Y == Y && other.Z == Z && other.W == W;
        }

        /// <summary>
        /// Determines whether the specified <see cref = "System.Object" /> is equal to this instance.
        /// </summary>
        /// <param name = "value">The <see cref = "System.Object" /> to compare with this instance.</param>
        /// <returns>
        /// <c>true</c> if the specified <see cref = "System.Object" /> is equal to this instance; otherwise, <c>false</c>.
        /// </returns>
        public override bool Equals(object value)
        {
            if (value == null)
                return false;

            if (!ReferenceEquals(value.GetType(), typeof(Byte4)))
                return false;

            return Equals((Byte4) value);
        }

        /// <summary>
        /// Performs an implicit conversion from <see cref="int"/> array to <see cref="Byte4"/>.
        /// </summary>
        /// <param name="input">The input.</param>
        /// <returns>The result of the conversion.</returns>
        public static implicit operator Byte4(byte[] input)
        {
            return new Byte4(input);
        }

        /// <summary>
        /// Performs an implicit conversion from <see cref="Byte4"/> to <see cref="System.Int32"/> array.
        /// </summary>
        /// <param name="input">The input.</param>
        /// <returns>The result of the conversion.</returns>
        public static implicit operator byte[](Byte4 input)
        {
            return input.ToArray();
        }
    }
}


Just wanted to see if you face this problem too. Mmass is a nice program and I want to thank the authors for making it free! I use it a lot to simulate isotopic patterns of molecules and compare it to experimental data. So the problem is, when I simulate the isotopic pattern and input intensity less than 1%, it doesn't do its job anymore. Works fine with decimals, if the intensity is higher than 1. So, for example, I can input 1.3 intensity, but can't 0.3.
you are right. There is a check for the intensity to be higher than 1. The intensity units are typically in "counts" so it does not make sense to have intensity between 0 and 1.


text:
May, John (1775–1856)
Merchant, financier and business agent. A member of a wealthy family, both his father (Joseph) and grandfather were successful merchants in Lisbon. He was educated at Newcome's Academy, Hackney, where he was taught by George Coleridge, with whom he became lifelong friends. May went to Lisbon in 1793, in order to learn the family trade, returning to England in 1796. May married Susannah Frances Livius in 1799. The marriage produced four children. May and Southey met in Portugal in 1796. Their friendship was to last until the latter's death. May acted as a financial adviser and agent to Southey, lending him money — including sums to finance Henry Herbert Southey's education — and purchasing goods on his behalf. Southey reciprocated when May experienced a severe financial crisis in 1821 by lending him his life savings of £620. May visited the Southeys on several occasions and acted as godfather to Southey's two eldest children — Margaret Edith and Edith May, the latter named in his honour. The Poet's Pilgrimage to Waterloo (1816) was dedicated to him 'in testimony of the highest esteem and affection'.
214. Robert Southey to Joseph Cottle, 2 May [1797]
216. Robert Southey to Joseph Cottle [fragment], [c. 8 May 1797]
225. Robert Southey to Edith Southey, [c. 21 June 1797]
227. Robert Southey to Joseph Cottle, [c. 25 June 1797]
229. Robert Southey to Grosvenor Charles Bedford, [c. 30 June 1797]
238. Robert Southey to Thomas Southey [brother], 22 July [1797]
271. Robert Southey to Grosvenor Charles Bedford, 12 November 1797
278. Robert Southey to Joseph Cottle, 14 December 1797
2250. Robert Southey to John May, 23 April 1813
1582. Robert Southey to John Rickman, 18 February 1809
293. Robert Southey to Grosvenor Charles Bedford, 9 March 1798
298. Robert Southey to Charles Watkin Williams Wynn, [25 March] 1798
300. Robert Southey to Grosvenor Charles Bedford, 30 March 1798
317. Robert Southey to Edith Southey, 21 May 1798
340. Robert Southey to Charles Watkin Williams Wynn, 3 August [1798]
375. Robert Southey to Charles Watkin Williams Wynn, 27 January 1799
2669. Robert Southey to Mary Barker, 9 November 1815
2571. Robert Southey to John Taylor Coleridge, 14 March 1815
2485. Robert Southey to George Coleridge, 12 October 1814
2474. Robert Southey to John Murray, 22 August 1814
2473. Robert Southey to John May, 22 August 1814
2461. Robert Southey to Grosvenor Charles Bedford, 17 July 1814
2425. Robert Southey to Grosvenor Charles Bedford, 21 May 1814
2382. Robert Southey to Grosvenor Charles Bedford, 25 February 1814
2318. Robert Southey to Edith Southey, 28 October 1813
2301. Robert Southey to Edith Southey, 16 September 1813
2243. Robert Southey to John Murray, 9 April 1813
2234. Robert Southey to Grosvenor Charles Bedford, 20 March 1813
2152. Robert Southey to Grosvenor Charles Bedford, 29 September 1812
2141. Robert Southey to Herbert Hill, 1 September 1812
228. Robert Southey to John May, 26 June 1797
232. Robert Southey to John May, 11 July 1797
247. Robert Southey to John May, 15 August 1797
255. Robert Southey to John May, 10 September 1797
261. Robert Southey to John May, 6 October 1797
267. Robert Southey to John May, 2 November 1797
1988. Robert Southey to John May, 24 November 1811
294. Robert Southey to John May, 10 March [1798]
303. Robert Southey to John May, 6 April 1798
309. Robert Southey to John May, 1 May [1798]
318. Robert Southey to John May, 27 May 1798
331. Robert Southey to John May, 8 July 1798
337. Robert Southey to John May, 23–25 July 1798
346. Robert Southey to John May, 2 September [1798]
363. Robert Southey to John May, [28 December 1798]
2675. Robert Southey to John May, 6 December 1815
2662. Robert Southey to John May, 20 October 1815
2660. Robert Southey to John May, 6 October 1815
2656. Robert Southey to John May, 23 September 1815
2614. Robert Southey to John May, 12 June 1815

redpajama_set_name: RedPajamaCommonCrawl


There are 10 independent living communities in Aurora, CO and 29 independent living communities nearby. The average cost of independent living in Aurora, CO is $1,385 per month.
Bella Vita Senior Living, located in Aurora, provides seniors with a selection of amenities to encourage an enjoyable senior living experience.
The median cost of independent living in Aurora for a single-occupancy apartment is $1,385/month (SeniorHomes.com - 2015). This monthly cost typically includes rent, utilities, dining, housekeeping and transportation.


text:
<?php

namespace AdminBundle\Form;

use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class TeamMemberType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        if($options['my_custom_option'])
        {
            $builder->add('photo',FileType::class,array(
                'required'=>false
            ));
        }
        else
        {
            $builder->add('photo',FileType::class,array(
            'required'=>true
        ) ) ;
        }
        $builder->add('lastname')->add('firstname')->add('job')->add('mail')->add('description',TextareaType::class,array(
            'required'=>false,
            'attr'=>array(      'rows'=>5,
                'cols'=>70,'')

        ))->add('teammembercategory',EntityType::class,array(
            'class' => 'AdminBundle:TeamMemberCategory',
            'choice_label' => 'title'

        ))    ->add('save',SubmitType::class)  ;
    }

    /**
     * {@inheritdoc}
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AdminBundle\Entity\TeamMember','my_custom_option'=>false
        ));
    }

    /**
     * {@inheritdoc}
     */
    public function getBlockPrefix()
    {
        return 'adminbundle_teammember';
    }

}

redpajama_set_name: RedPajamaGithub


The Alien Channel - Brent and the alien communicate to figure out what they need to do. Brent realises he must take the alien to school.
Brent and the alien are chased as they try to make it to the pick up point in time.
Brent and the alien communicate to figure out what they need to do. Brent realises he must take the alien to school.


With scholarship support from UK's Army ROTC program, Awoniyi, 22, is about to begin her second year of law school at UK, forging a direct path toward her dream.
"I'm doing exactly what I want to do. I'm exactly where I want to be," said Awoniyi, a native of Nigeria who moved with her family to the United States when she was six.
Sometimes, there are challenges to being a trailblazer: her law school finals don't always coincide with the finals of the rest of the undergraduate ROTC cadets, and waking up for PT formation at 0630 hours when she's been awake until 2 a.m. reading law proceedings isn't easy.
But Awoniyi says her UK ROTC professors have been amazingly supportive and willing to work around her unique schedule—particularly given the fact that she's had prior military service experience.
Just after graduating in 2004 from Louisville's Male High School, where she was the school's first-ever female ROTC cadet battalion commander, Awoniyi enlisted at age 17 in the Army National Guard.
For four years, as a Transylvania University undergraduate, Awoniyi pursued a major in English and minors in German and anthropology during the week, and on the weekends and summers, she drilled with the National Guard.
The Guard even sent her abroad to Germany, where her language skills were so strong she convinced some locals she was a native.
Awoniyi had planned to attend Army Officers Candidate School after college graduation. A chance run-in during her junior year with the UK ROTC recruiter—she'd brought a friend to Buell Armory to enlist in the National Guard—informed her that ROTC could help pay for law school.
From that moment on, UK became her top choice.
"When they told me that, I was in their office ready to sign up so fast," she said. "It's crazy how things work out." She received an honorable discharge from the National Guard in order to be eligible to receive the ROTC scholarship.
Awoniyi admits that balancing the demands of law school along with the ROTC requirements hasn't been easy. She's had to make sacrifices—like studying all day last Thanksgiving at Starbucks, rather than visiting family. And there have been several sleepless nights.
She knows this coming year, classified her MS3 year with ROTC—where she'll have coursework relating to the law of war and military operations and tactics, among other topics—will also be especially demanding.
While at UK, Awoniyi hopes to focus on family law or immigration or international law, and her ROTC faculty have already begun helping her navigate the complex steps required to apply for the JAG Corps.
And when she's waking at 5:40 a.m. three mornings a week to run a mile to ROTC physical training—where she'll do pushups, sit-ups, and run some more—no matter how tired she is, she makes herself stop and think: she's right where she needs to be.


When you drive around Saint James, you can count on the Lincoln Nautilus to make your trips more convenient. At Lincoln of Smithtown, we can demonstrate such features as Electric Power-Assisted Steering that gives you a more fluid feel at low speeds and more control at higher speeds. Available Intelligent All-Wheel Drive constantly monitors traction and diverts torque as needed to the front and rear wheels so you retain maximum grip on any surface even before the wheels can slip.
When you approach this luxurious crossover with your key fob in hand, a distinctive sequence of available illumination bids you welcome. The Lincoln logo also appears as a light on the ground to show you the way.
Enter the cabin and the gentle glow of available ambient lighting defines your mood. Choose from up to seven distinctive colors.
Drive Off in a New Lincoln Today!


#71DD07 Hex Color, Includes conversions, schemes, html color codes and much more.
This page lists many detailed information about the hex color #71DD07. Its Hexadecimal code is 71DD07. In a RGB color space, which is consist of 44.31% red, 86.67% green and 2.75% blue, and that corresponding RGB values are 113, 221, 7. In a CMYK color space, it is consist of 48.9% cyan, 0% magenta, 96.8% yellow and 13.3% black, whereas that corresponding CMYK values are 0.49, 0, 0.97, 0.13. Other more information such as degree, lightness, saturation, please browses the following content.


text:
BIGG Success, helping entrepreneurs find focus.
#1080 - 3 Business Survival Tips
#1080 - It's our anniversary! We share insights from our journey and the top business survival tips we've used to stay in business for 14 years.
See The Professor's whiteboard for this episode and other resources with our show notes: https://biggsuccess.com/?page_id=13864
Thanks so much for listening,
- George aka "The Professor" & Mary-Lynn
Ready to find and fulfill your calling? Our free Life Purpose Quiz can help! Take it at BIGGsuccess.com!
We help entrepreneurs find focus for personal, professional, business, and financial success. George Krueger and Mary-Lynn Foster are the co-founders of BIGG Success. George is a serial business owner who also teaches Entrepreneurial Finance at the University of Illinois. Mary-Lynn is a veteran radio show host turned entrepreneur. We believe entrepreneurship isn't just an occupation; it's also a way of thinking which helps you take control, make better decisions, and reach your goals faster, whether or not you own a business. Subscribe to get fun, informative, and inspirational episodes from "The Professor and Mary-Lynn," that help you have an entrepreneur mindset and focus on the right moves to achieve BIGG success.
© Bigg Success, a division of Wynn Bigg Corporation. All rights reserved.


text:
What Should I Do if I Find a Lump on my Cat's Body?
By Susan Dorling September 1, 2019
Susan Dorling
Based in Ontario, Susan Dorling has written professionally since 2000, with hundreds of articles published in a variety of popular online venues on a diverse range of topics. Reflecting her passion for pets and interest in the welfare of all animals, she writes about dogs, cats, birds, and wildlife. Her blog, Focus on Animals, is at https://susandorling.wordpress.com
All that cuddling you share with your cat is not only emotionally rewarding for both of you, but it also provides an ideal opportunity to physically examine her body for any health issues. Hence, giving your cat the thorough once-over from the tip of her tail to the tip of her nose on a regular basis allows early detection of conditions such as a broken claw, decayed tooth, skin conditions, and stiffness or soreness in her joints. But what should you do if you find a lump on your cat's body?
Image Credit: Tomwang112/iStock/GettyImages
What to do if you find a lump on your cat
Along life's bumpy road, we all get our fair share of lumps; and cats do, too. After all, the average feline loves rough-and-tumble play, jumping to or from high places, and assorted acrobatics, all of which can result in trauma to the skin or tissues and can lead to swelling and lumps. But lumps and bumps can also be tumors, and one in five cats will get cancer in one form or another during their life presenting as tumors anywhere on the body. According to Cancer Quest, an initiative of the Winship Cancer Institute at the Emory University in Atlanta, cancer is the most common disease that affects cats, and many cat owners are well-aware of the potential.
Consequently, If you find a lump on your female cat's stomach, it's easy to be devastated and jump to the conclusion that it's mammary cancer. After all, statistically, 85% of mammary tumors in cats are cancerous, reports the Veterinary Medical Center at Ohio State University. But look on the bright side because 15% of lumps or tumors are, in contrast, benign. Your cat's lump might be a feline lipoma, basal cell tumor, or a fibroma.
And the good news is that when detected early enough, even a cancerous tumor on your cat's tummy can be successfully removed by a veterinary surgeon for a full recovery. It should be noted that male cats can also get mammary carcinoma, but studies show an incidence of only 1% and in predominantly those males older than 12.
Image Credit: BackyardProduction/iStock/GettyImages
Any lump you find on your cat, regardless of where it is, warrants veterinary examination, particularly if:
A lump is large.
A lump appears suddenly.
A change has occurred in the size, feel, or texture of an existing lump, i.e. it's harder, less moveable, etc..
The lump is black or purple in color.
Your cat is bothered by the lump, wants to scratch it, and it's interfering with his daily life.
The lump is an open sore or ulcerated.
The lump is leaking pus or discharge.
Your cat shows signs of illness such as lethargy, diarrhea, loss of appetite, or depression.
It's b**est to book a visit with your veterinarian as soon as possible to check it out.**
Different kinds of benign lumps and bumps
There's a world of difference between malignant or cancerous tumors and benign ones. While malignant or cancerous tumors invade surrounding tissue and spread into nearby and distant organs, benign tumors do not spread to other areas of the body and can be removed in an uncomplicated surgery your veterinarian routinely performs.
Image Credit: Rawpixel/iStock/GettyImages
Here are some of the common lumps and bumps that are found on a cat's abdomen or chest that are benign, and although not completely without complication, are fairly harmless when addressed promptly:
Lipomas_:_ These benign tumors are harmless but need to be addressed as soon as possible because they grow quickly making them indistinguishable from the more serious infiltrative lipomas or lipsarcomas. Treatment of lipomas is surgical removal. Lipomas are composed of fatty or adipose tissue, but obesity is not a factor in their development. Genetics may play a role, though, with older, neutered, male Siamese most at risk. Lipomas are most commonly discovered on the abdomen and appear as soft, lumpy masses. Characterized by moving freely when touched, lipomas can occur in multiples and typically merge with the healthy fat tissue adjoining them. This blending into neighboring fat makes it more difficult for a vet to identify the edge of the tumor_._
Basal cell tumors: Common in older cats, particularly domestic longhair, Himalayan, and Persian, basal cell tumors can develop anywhere on the body, including the stomach. Basal cell tumors manifest as firm, solitary, often hairless lumps that may be ulcerated, and stick out from the skin's surface like stalks. These benign tumors are often dark in color, and variable in size, ranging from less than half an inch to more than 4 inches in diameter. Cysts may form, and although basal cell tumors are benign, they can grow rapidly resulting in extensive ulceration and secondary inflammation. Basal cell tumors are effectively removed by surgery.
Fibromas: Occurring in the dermal layer of the skin, fibromas are distinguished by their well-defined edges and develop commonly in dogs, but all domestic animals can develop fibromas, including cats. Typically benign, fibromas present as raised, often hairless, lumps that feel either firm and rubbery or soft and fluid-filled. Treatment is optional for benign fibromas. For example, if fibromas intefere with your cat's normal activities, or grow too large and unsightly, you may consider surgical removal to make your cat more comfortable.
Mammary cancer in cats
If you find a lump on your cat's stomach, it may be indicative of mammary cancer. According to studies cited at the Veterinary Sciences division of the U.S. National Library of Medicine, the epidemiology of mammary gland tumors in cats and people is similar, with age and hormone exposure being major risk factors. As well, studies show that Siamese cats are twice as likely to develop mammary tumors, and at a younger age than other cat breeds.
Mammary cancer is particularly prevalent in unspayed females with only 9% of mammary cancers occurring in spayed female cats. Spaying your cat before her first heat is recommended to reduce the possibility of mammary cancer. When detected early, mammary tumors can be successfully removed via surgery.
Image Credit: NiseriN/iStock/GettyImages
Diagnosis: is it mammary cancer or a benign tumor?
To diagnose your cat's lump as malignant or benign, your vet will perform a fine needle aspiration of cells, or a biopsy, which removes a tiny portion of tissue from a tumor, for a histopathologic evaluation.
Further diagnostics such as chest X-rays and ultrasound imaging will be used in conjunction where it is confirmed that a mammary mass has spread to the lymph nodes.
If mammary cancer is definitively diagnosed, a mastectomy is performed to remove one or both chains of the patient's nipples, mammary glands, and underlying tissue. Survival rates are good, especially if the tumor is smaller than a one-inch diameter.
Always check with your veterinarian before changing your pet's diet, medication, or physical activity routines. This information is not a substitute for a vet's opinion.
Rau Animal Hospital: Four Types of Cat Cancer and Their Symptoms
The People's Dispensary for Sick Animals: Tumors and Lumps
VCA Hospitals: Mammary Tumors in Cats
Cornell University College of Veterinary Medicine Feline Health Center
U.S. National Library of Medicine Veterinary Sciences: Cats, Cancer and Comparative Oncology
Cancer Quest: Cancer in Domesticated Animals
The Ohio State University Veterinary Center: Feline Mammary Tumors
U.S. National Library of Medicine Veterinary Sciences: Clinical Characteristics of Mammary Carcinoma in Male Cats.
Signs of Feline Cancer
Symptoms of a Feline Brain Tumor
What Causes Canine Lipomas?
Cat Moles & Skin Tags
Cat Paw Diseases
Symptoms & Treatment of Lymphoma in Cats


text:
Q: Is there a way to query VoiceOver rotor mode? When VoiceOver is enabled on tvOS or iOS, is there an API to query which navigation mode is currently selected?  (i.e.: containers, headings, landmarks, etc.).

A:
... is there an API to query which navigation mode is currently selected?

Under iOS 13, it's currently not possible.
Even if you can add a new rotor option thanks to the UIAccessibilityCustomRotor since iOS 10, there's definitely no way to get the selected mode information from the rotor.

redpajama_set_name: RedPajamaStackExchange


We'd all love to disrupt our competitors. In technology, we see more and more disruptive products and services. And some of them produce spectacular results for the disruptor. Here's one way of disrupting your market.
Customers buy technology to achieve a business outcome. They may want to increase sales, or reduce costs, or improve customer service, or comply with government regulations. The customer buys the technology as the most effective way of achieving the business outcome they need. The technology is a means to an end.
If lots of customers need that business outcome, the vendor can do well. Product sales will be high.
The vendor may feel they can rely on future sales of their product. And they want to increase sales by expanding their offering. They invest in making the product broader and deeper. Which creates the opportunity for upsell and cross-sell.
Sales of the product continue to grow. Which reinforces the sense that the product is the key. The vendor believes their role is to enhance and sell their product. And that's what they do.
But danger can lurk. Unseen forces may gather.
Let's look at some disruption examples from B2C. Sony launched the Walkman in 1979. The Walkman provided a revolutionary new outcome for consumers – 'music made portable'. People could enjoy their music on the move. Sony offered a cassette tape version which evolved to a portable CD player. The Walkman reigned supreme for years.
For Sony, the Walkman sales outlook would have looked great. Then, in 1987, a Korean company introduced a new way to deliver the outcome of 'music made portable' – the first MP3 player. MP3 players disrupted the Walkman. Same outcome, different delivery. Then Apple introduced the iPod, which assured the decline of the Walkman.
Netflix provides a more recent example. They disrupted the video-store industry. We could describe the outcome delivered by video-stores as – 'entertained at home'. The first disruption by Netflix overcame the need to go to a store to rent a video. Netflix customers could order online, and Netflix would deliver. They enabled the same outcome of 'entertained at home' but used a new delivery method.
Netflix then went a step further and provided video streaming. And that really sounded the death-knell for video stores (and Netflix's own video business, by the way). Again, the same outcome but a new delivery method.
In the B2B space, we see another example in CRM. For years, Siebel was the dominant player. They delivered the product on-premise. Sales revenue was huge and growing. The future looked awesome. Then Salesforce arrived on the scene. Same outcome, but now delivered in the cloud. And Salesforce boomed, at Siebel's expense.
Lots of vendors would argue their job is to deliver a great product. That's what the invoice to the customer says. The customer pays for the product.
But that's not why customers pay the money. They pay the money to achieve the business outcome they need. And they've decided the vendor's product is the best way to achieve the outcome.
Customers will continue to buy the vendor's product….until there's a better option. If a better method of achieving the outcome appears, customers will change. That can completely disrupt a vendor's business. And it can happen quickly, as we saw for Sony, for video stores and for Siebel.
The task for vendors is not to deliver a great product. The job is to enable the customer's business outcome in the most effective way. The current product is the way that happens right now. And of course, in the absence of a disruptor, the vendor must deliver a great product. Because that's how customers currently achieve their business outcome.
But the vendor needs constant vigilance. They need to watch for the threat of a new delivery method from another company. And the threat may not be from an established competitor. It may come from left field.
At the same time, they need to search for new delivery methods themselves. Because they might find the new delivery method that disrupts their own market. Even if that disrupts their own product or service, just as Netflix did to themselves.
So, the task for vendors is clear. Be the company that best enables the business outcome for customers. And regardless of the method, if they remain best at enabling the outcome, their future is rosy.


Today I am thankful for my husband's steady job. Life has not always been easy for us, financially. Frank had a well paying, steady job for two summer and winter seasons. One was a cook at a snack bar, the summer I was pregnant with the twins, and the summer that they were born. Since that was seasonal, during the winter months he worked at a garage as a mechanic. Both were great pay and steady work and hours. And then one day in 2010, he hurt his back. We thought he just threw it out or pulled a muscle or something and it would be better in a few days. Boy, were we wrong! After seeing various different doctors, we finally found out that he had 2 herniated discs. He was out of work for almost a year, and it was one of the worse things that could have happened to us at that time. We had 2 toddlers, and we found out shortly after that, that we were expecting Mason. I was unable to work, we got evicted from our home at the time, and moved in with family for a short time. That didn't work well for long, and luckily, my grandparents were right there to help us out and we lived with them for a month or so. We finally found an apartment that was in our budget, and would fit all of us, for the time being. We got some assistance from the state, and moved in as soon as we could. Slowly, we began rebuilding our lives and got back "on our feet." Frank finally found another job, since his back issue was being managed. He started working at the mountain as a cook, and almost a year later, we are much better off than we have been in a really long time. We have since moved a couple times, and are now in a much better and bigger and more affordable apartment, the kids have everything they need and more, we have a good, reliable vehicle, and all of our bills are paid. There used to be a time when we couldn't pay any of our bills. Our cable, phone, and internet bill racked up quickly, our car insurance was always in the cancellation process, and we were constantly going to the food shelf to get diapers for our kids. But all of that is behind us now. We are current or ahead on all of our bills, the kids have diapers and wipes and brand new clothes and we have been able to even spoil ourselves a tiny bit here and there. In some ways, I miss those days since it showed us what we really needed to be appreciative for. I definitely do not miss the stress of not having money to pay things or get things we needed then though. When I hear friends and family complaining about paying bills now, I remind them that things could be a lot worse, because I know; we were there once. Now, I LOVE paying bills. I know, that sounds crazy to most. But after going for so long without being able to pay bills, when we WANTED to pay them, and now being able to pay them without a problem and not have that stress on ourselves, is one of the most wonderful feelings in the world. And I thank my hard working husband for that every single day, sometimes more than once a day. ;-) It's because of his hard work and dedication that we can get what we need and provide for our family, and it's because of his hard work and dedication that I can stay home and raise our children the way we want them to be raised, and not have to miss a single second of their lives. And it's because of his hard work and dedication that I can attend college and work on furthering my education to enter back into the workforce later in life, when we are through having children and all our children are a little bit older. I owe so much thanks to my husband, and words can never express how truly thankful I am to him.


Native to the mountains of SE China, the Chinese Yellow banana grows to about 5' high and pups very freely. It has attractive grayish-green foliage and forms nice clumps.
It is grown for its 6" wide waxy yellow flower that lasts for at least 6 months. Hardy to zone 7 with mulch. Our one gallon plants begin forming a clump the first year. Great also in containers.


text:
Sun will Never set on Solar Energy
IN THE last round of bidding for renewable energy projects, the cost of photovoltaic (PV) solar dropped 68% — the new solar farms will be delivering cheaper electricity than Eskom's new power stations. And renewable energy costs will continue to drop while the efficiency of solar panels continues to improve. Most solar panels in use Continue Reading
Could Cow Dung be a Solution to SA's Energy?
A young researcher at the University of Free State (UFS) has dedicated her life to finding solutions to the county's electricity crisis using an unusual energy source – cow dung. Born and bred in Vereeniging in Gauteng, Reitumetse Molaoa said her main focus was finding ways to generate electricity using biogas produced by food waste Continue Reading
South Africa to Procure Nuclear Energy at Affordable Scale
South Africa will procure nuclear energy at an affordable pace and scale, President Jacob Zuma said on Thursday. "We will procure nuclear energy on a scale and pace that the country can afford," Zuma said in his annual state of the nation address to parliament. South Africa hopes to install 9,600 megawatts of nuclear power Continue Reading
Water, Energy, and Food Reckoning for SA due to Drought
February 2, 2016 at 6:48 am , by superad
How high will food prices climb if there is no break in the worst drought in 34 years? Will water shortages, expected over the next decade, change South Africa's program to continue building two immense, thirsty, overdue, and expensive coal-fired power plants? How much is South Africa willing to invest in drinking water supply and wastewater treatment Continue Reading


Spark a young creator's imagination with this super-fun Decoupage bracelet kit from Make It Real. Learn fine motor skills and creative thinking by individually decoupaging the wooden beads with beautiful paper, and using the materials to craft 3 bracelets. Includes: decoupage paper, 64 beads, 2 charms, 2 jump rings, 2 colours of waxed cord, elastic cord, paint brush, craft glue, instructions and a dream guide. Age 8+ years. Part of the Jewellery Collection. Distributed in New Zealand by Holdson.


text:
Q: Yii 1 cdbcriteria how to pass param to the on clause in join I need to pass param to the on in join
    $criteria       = new CDbCriteria;
            $criteria->join = "left join invoices v1 on t.id=v1.s_id and v1.year=:year";
           $criteria->params= array(':year'=>$category->year); //will not work

error Invalid parameter number: number of bound variables does not match number of
tokens
or if it could be implemented in my model
public function relations()
    {
    return array(
              'invoices'=>array(self::BELONGS_TO, 'invoices', '', 'on'=>'t.id=invoices.sid and v1.year=:year', 'joinType'=>'left JOIN', 'alias'=>'invoices' ), //how to pass param :year?

how to pass the param in the join in either case ?
Thank you


Peinture Sur Papier Peint Vinyl 12 A Peindre Expanse Graham Brown is part of great design ideas. Peinture Sur Papier Peint Vinyl 12 A Peindre Expanse Graham Brown was created by combining fantastic ideas, interesting arrangements, and follow the current trends in the field of that make you more inspired and give artistic touches. We'd be honored if you can apply some or all of these design in your wedding. believe me, brilliant ideas would be perfect if it can be applied in real and make the people around you amazed!
Peinture Sur Papier Peint Vinyl 12 A Peindre Expanse Graham Brown was posted in February 10, 2018 at 4:20 am. Peinture Sur Papier Peint Vinyl 12 A Peindre Expanse Graham Brown has viewed by 237 users. Click it and download the Peinture Sur Papier Peint Vinyl 12 A Peindre Expanse Graham Brown.
Couleurs, Technique De Peinture Sur Bois was posted September 24, 2014 at 9:24 am by systembase.co . More over Technique De Peinture Sur Bois has viewed by 10878 visitor.
Extérieur, Peinture Sur Meuble Vernis Sans Poncer was posted December 23, 2018 at 12:28 am by systembase.co . More over Peinture Sur Meuble Vernis Sans Poncer has viewed by 2308 visitor.
Couleurs, Peinture Sur Papier Peint Vinyl was posted May 15, 2014 at 1:12 am by systembase.co . More over Peinture Sur Papier Peint Vinyl has viewed by 17906 visitor.
Couleurs, Tva Sur Travaux De Peinture was posted February 25, 2019 at 3:00 am by systembase.co . More over Tva Sur Travaux De Peinture has viewed by 655 visitor.
Couleurs, Enduit Sur Bois Avant Peinture was posted June 17, 2014 at 8:56 am by systembase.co . More over Enduit Sur Bois Avant Peinture has viewed by 11800 visitor.
Extérieur, Peinture Sur Beton Exterieur was posted December 22, 2018 at 11:01 pm by systembase.co . More over Peinture Sur Beton Exterieur has viewed by 1826 visitor.
Couleurs, Enduit De Lissage Sur Peinture was posted December 18, 2014 at 10:02 pm by systembase.co . More over Enduit De Lissage Sur Peinture has viewed by 17375 visitor.
Extérieur, Peinture Sur Bois Vernis was posted December 23, 2018 at 4:12 am by systembase.co . More over Peinture Sur Bois Vernis has viewed by 1590 visitor.
Extérieur, Peinture Sur Terrasse Beton was posted December 23, 2018 at 10:05 am by systembase.co . More over Peinture Sur Terrasse Beton has viewed by 2650 visitor.
Couleurs, Peinture Sur Toile De Verre was posted November 30, 2018 at 5:55 pm by systembase.co . More over Peinture Sur Toile De Verre has viewed by 545 visitor.


text:
Martin Jan Stránský - Úvodní stránka (Přejít na navigaci)
Historical progress: The big picture
Guestview
Any first-time visitor to South Africa can see that the country is at a crossroads. It is a great land of numerous contrasts — a huge country with deserts and high mountains, beaches and bush. But beneath the grandeur and the wonder, there is palpable tension. Wildlife live in national park systems, while a huge swath of the population lives in poverty, acquiring the AIDS virus at a rate of 1,000 people per day. Central Johannesburg is filled with mounds of garbage, some of it hanging from sickly trees in front of empty skyscrapers. Masses of poor blacks congregate on the sidewalks, spilling into the streets. Homeless people and drug pushers catch naps in front of the Central Court building. Apartheid has been lifted, but there is not a white person in sight. They are in the suburbs or running the large farms. A billboard shows an old Dutch-style Boer home, with a nice white family sipping wine. But the sign at the crossroads points to an uncertain future or to implosion and collapse. South Africa is slipping. In Europe and North America, we believe that history marches forward and, with it, progress. We are taught that in school, memorizing facts, inventions, movements and developments in chronological order. Later equals better. Humanity does make mistakes but it has generally learned from them, only to be faced with new challenges. In fact, when movement does occur, it is often cyclical. For example, here in the Czech Republic, entry into the European Union is regarded as a huge step forward. Although the fanfare is justified, the Czech people have essentially always existed as part of multinational organizations: the Soviet, Habsburg, Holy Roman, Roman and Greater Moravian empires are but a few examples. We are all familiar with the expression history repeats itself." But how much does it go forward? For example, just as was the case in the past centuries, the great majority of conflicts in the world today continue to be based on religious differences. From the Inquisition and the Thirty Years' War to the Holocaust, as well as conflicts in the Balkans, Chechnya, Afghanistan and Palestine, we still refuse to learn. Even today, in Europe, the West and the Middle East, we continue to define limits narrowly, from the inside out. Alternatives are framed by the suicide bomber on the one hand and far-reaching initiatives that focus on restoration of democracy" or self-governance" on the other. However, when placed against the Big Picture, such thinking loses most of its relevance. The same holds true of our Western notion of seemingly simple concepts such as victory" and progress." The failure to recognize this and act accordingly has been, and still is, the greatest fault of Europe and the developed West.
— By Martin Jan Stransky, publisher of New Presence magazine. Postview returns next week.
Publikováno:
The Prague Post 28.8.2003
Ombudsman for Health
The New Presence
My priority is that patients recieve
and have access to the best care possible.
Home Page > Martin Jan Stransky > Professional >
Published articles > The Prague Post > Historical progress:…
MUDr. Martin Jan Stránský, Národní 9, Praha 1 - contact person: Jitka Bayerová - asist., tel.: 222 075 101, fax: 224 215 059, email: bayerova@mjs.narodni.cz


text:
Vodafone and Orange Romania forced to cut down interconnection rates
Luni, 10 iulie 2006, 0:00
Romania's National Regulatory Authority for Communications (ANRC)announced the two most important mobile operators in Romania - Vodafone Romania and Orange Romania - that they must cut down their interconnection rates with 11.3% in 4 stages, from September 1, 2006 to January 1, 2009.
The tariff level will reach 5.03 Euro cents per minute, as compared to 8.13 Euro cents per minute, at present, an ANRC press release issued on Monday informs.
Vodafone Romania and Orange Romania consider the interconnection tariffs as "unfair" and "not realistic". Vodafone expressed their worry in regard with the ANRC decision which will have a negative effect on the long term planned investments, Chief Executive Officer Vodafone Romania Liliana Solomon said.
Orange Romania believes these tariffs have not proved beneficial for the countries with economic ascendant trend, like Romania. None of the East European countries applied such model in order not to affect the telephony markets 'development, a press release by Orange reads.
The ANRC decision comes in the wake of three bilateral talks started in august 2005. The mobile companies find the meetings insufficient and incomplete, as not taking into consideration an objective analysis of all the factors.


text:
package com.softwarejoint.bert;

import android.annotation.SuppressLint;

import java.lang.reflect.Array;
import java.math.BigInteger;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;

@SuppressWarnings("unused")
public final class BertEncoder extends Bert implements DistributionHeader {

    private ByteBuffer buffer;

    private int MIN_BUFFER_SIZE = 1024 * 8;  //8kb default size
    private int bufferSize = MIN_BUFFER_SIZE;

    private boolean stringAsBinary;
    private boolean mapKeysAsAtom;
    private boolean mapKeysAsString;
    private boolean mapAsPropList;

    public BertEncoder setEncodeStringAsBinary(boolean enabled) {
        stringAsBinary = enabled;
        return this;
    }

    public BertEncoder setEncodeMapAsPropList(boolean enabled) {
        mapAsPropList = enabled;
        return this;
    }

    public BertEncoder setEncodeMapKeysAsAtom(boolean enabled) {
        mapKeysAsAtom = enabled;
        return this;
    }

    public BertEncoder setEncodeMapKeysAsString(boolean enabled) {
        mapKeysAsString = enabled;
        return this;
    }

    public void setBufferSize(int bufferSize) {
        this.bufferSize = Math.max(bufferSize, MIN_BUFFER_SIZE);
    }

    private void resetBuffer() {
        if (buffer != null) buffer.clear();
        int size = Math.max(bufferSize, MIN_BUFFER_SIZE);
        if (buffer == null || buffer.capacity() < size) {
            buffer = ByteBuffer.allocate(bufferSize);
        }
    }

    public byte[] encodeAny(Object any) {
        resetBuffer();
        buffer.put(MAGIC);
        encode(any);
        byte[] encodedData = new byte[buffer.position()];
        buffer.flip();
        buffer.get(encodedData);
        return encodedData;
    }

    @SuppressWarnings("unchecked")
    private void encode(Object any) {
        if (any == null) {
            encodeNull();
        } else if (any instanceof Byte) {
            encodeByte((Byte) any);
        } else if (any instanceof Short) {
            encodeInteger(((Short) any).intValue());
        } else if (any instanceof Integer) {
            encodeInteger((Integer) any);
        } else if (any instanceof Float) {
            encodeDouble(((Float) any).doubleValue());
        } else if (any instanceof Double) {
            encodeDouble((Double) any);
        } else if (any instanceof Long) {
            encodeLong((Long) any);
        } else if (any instanceof BigInteger) {
            encodeBigInteger((BigInteger) any);
        } else if (any instanceof Boolean) {
            encodeAtom((Boolean) any);
        } else if (any instanceof BertAtom) {
            encodeAtom((BertAtom) any);
        } else if (any instanceof String) {
            encodeString((String) any);
        } else if (any instanceof byte[]) {
            encodeBinary((byte[]) any);
        } else if (any instanceof BertTuple) {
            encodeTuple((BertTuple) any);
        } else if (any instanceof List) {
            encodeList((List) any);
        } else if (any instanceof Map) {
            encodeMap((Map) any);
        } else if (any.getClass().isArray()) {
            encodeArray(any);
        }
    }

    private void encodeByte(Byte i) {
        buffer.put(SMALL_INTEGER_EXT);
        putUnsignedByte(i);
    }

    private void encodeInteger(Integer i) {
        if (SMALL_INTEGER_EXT_MIN_VAL <= i && i <= SMALL_INTEGER_EXT_MAX_VAL) {
            encodeByte(i.byteValue());
        } else {
            buffer.put(INTEGER_EXT);
            buffer.putInt(i);
        }
    }

    private void encodeDouble(Double d) {
        switch (minorVersion) {
            case ExternalFormat.OLD:
                buffer.put(FLOAT_EXT);
                //noinspection MalformedFormatString
                @SuppressLint("DefaultLocale")
                String s = String.format("%0$-31.20e", d).replace(' ', '\0');
                buffer.put(s.getBytes(utf8Charset));
                break;
            case ExternalFormat.NEW:
                buffer.put(NEW_FLOAT_EXT);
                buffer.putDouble(d);
                break;
        }
    }

    private void encodeLong(Long l) {
        if (Integer.MIN_VALUE <= l && l <= Integer.MAX_VALUE) {
            encodeInteger(l.intValue());
            return;
        }

        encodeBigInteger(BigInteger.valueOf(l));
    }

    private void encodeBigInteger(BigInteger b) {
        byte[] bytes = b.toByteArray();

        if (bytes.length <= SMALL_INTEGER_EXT_MAX_VAL) {
            buffer.put(SMALL_BIG_EXT);
            putUnsignedByte(bytes.length);
        } else {
            buffer.put(LARGE_BIG_EXT);
            putUnsignedInt(bytes.length);
        }

        buffer.put((byte) ((b.signum() >= 0) ? 0 : 1));
        for (int i = bytes.length; i > 0; i--) {
            buffer.put(bytes[i - 1]);
        }
    }

    private void encodeAtom(Boolean b) {
        encodeAtom(b.toString());
    }

    private void encodeAtom(BertAtom atom) {
        encodeAtom(atom.get());
    }

    private void encodeAtom(String s) {
        if (s.length() <= SMALL_INTEGER_EXT_MAX_VAL) {
            buffer.put(SMALL_ATOM_EXT);
            putUnsignedByte(s.length());
        } else {
            buffer.put(ATOM_EXT);
            putUnsignedShort(s.length());
        }

        buffer.put(s.getBytes(utf8Charset));
    }

    private void encodeString(String s) {
        if (stringAsBinary) {
            encodeBinary(s.getBytes(utf8Charset));
        } else if (s.length() <= STRING_EXT_MAX_VAL) {
            buffer.put(STRING_EXT);
            putUnsignedShort(s.length());
            buffer.put(s.getBytes(utf8Charset));
        } else {
            encodeArray(s.getBytes(utf8Charset));
        }
    }

    private void encodeBinary(byte[] array) {
        buffer.put(BINARY_EXT);
        putUnsignedInt(array.length);
        buffer.put(array);
    }

    private void encodeNull() {
        buffer.put(NIL_EXT);
    }

    private void encodeTuple(BertTuple tuple) {

        if (tuple.size() <= SMALL_INTEGER_EXT_MAX_VAL) {
            buffer.put(SMALL_TUPLE_EXT);
            putUnsignedByte(tuple.size());
        } else {
            buffer.put(LARGE_TUPLE_EXT);
            putUnsignedInt(tuple.size());
        }

        for (Object o : tuple) {
            encode(o);
        }
    }

    private void encodeList(List list) {

        buffer.put(LIST_EXT);

        putUnsignedInt(list.size());
        for (Object o : list) {
            encode(o);
        }
        encodeNull();
    }

    private void encodeMap(Map<Object, Object> map) throws IllegalArgumentException {

        if (mapAsPropList) buffer.put(LIST_EXT);
        else buffer.put(MAP_EXT);

        putUnsignedInt(map.size());

        for (Map.Entry<Object, Object> entry : map.entrySet()) {

            if (mapAsPropList) {
                buffer.put(SMALL_TUPLE_EXT);
                putUnsignedByte(2);
            }

            if (mapKeysAsAtom) {
                encodeAtom(entry.getKey().toString());
            } else if (mapKeysAsString) {
                encodeString(entry.getKey().toString());
            } else {
                encode(entry.getKey());
            }

            encode(entry.getValue());
        }

        if (mapAsPropList) encodeNull();
    }

    private void encodeArray(Object array) {

        buffer.put(LIST_EXT);

        int elements = Array.getLength(array);
        putUnsignedInt(elements);
        for (int i = 0; i < elements; i++) {
            encode(Array.get(array, i));
        }

        encodeNull();
    }

    private void putUnsignedByte(int i) {
        buffer.put((byte) (i & 0xff));
    }

    private void putUnsignedShort(int i) {
        buffer.putShort((short) (i & 0xffff));
    }

    private void putUnsignedInt(long l) {
        buffer.putInt((int) (l & 0xffffffffL));
    }
}


text:
LIFE AFTER THE OCCUPATION ~ TALKING WITH THE TALIBAN
Special report: In the last of his series from Afghanistan, Ghaith Abdul-Ahad asks Taliban leaders past and present what kind of regime they would run ~ and whether there is a chance of negotiated peace
Part two: Five days inside a Taliban jail
Part one: The London cab driver who fights for the Taliban
By Ghaith Abdul-Ahad
In the south-eastern city of Khost, the everyday business of the Taliban administration carries on across the street from the fortified, government-run city court and police station.
The head of the Haqqani network's civilian administration and his assistant hold their council in the grand mosque, which is also known as the Haqqani mosque because it was built with Taliban and Arab money.
When I met them, the two men ~ a frail-looking 60-year-old and his younger sidekick ~ gave the impression of being haggard peasants seeking work in the city rather than members of one of the organisations most feared by Britain and America.
Worshippers at the mosque greeted the Haqqani representatives with a mix of reverence and anxiety, some walking in a long circle to avoid them while others came forward and shook hands, pledging contributions for the movement. The mosque leader begged them to be his guests for the night.
"The resistance is stronger and bolder today," the old man said. "A few years ago the Taliban could move only at night.
"Now that our land has been liberated ~ thanks be to God ~ we walk around in the middle of the day and we fight in front of the people. We control our lands and our villages while [the Americans] can only come in by air."
The administrator was laden with messages to deliver. Among his many roles as a senior member of the civilian administration, the most important is as a conduit to the higher Taliban authority of Sirajuddin Haqqani and his base in the border region between Khost and Pakistan.
The old man carries edicts from the leadership in one direction and petitions and complaints in the other.
When the Taliban ruled in Kabul in the 1990s they closed schools, stopped women working and exposed themselves to ridicule by banning trivial pursuits such as kite flying.
Yes, the Taliban had made mistakes in the past, he admitted, and they were still making them. "Our men still do things that annoy the people, and that is part of my job, to convey the complaints," he said.
"But the benefits of the Taliban outweigh the harm we do to the people. In our area there were thieves and bandits. It was chaos.
"People needed someone to monitor and rule and punish. They needed us to impose order.
"The government is besieged in its fortresses and can't come to the people, and corruption is paralysing it. One of the main reasons for our popularity is the failure of this government."
In a striking parallel with what the Americans have been advocating as part of their counterinsurgency initiative, the Haqqanis have set up local shura (consultation) councils made up of village elders and clerics to run the affairs of villagers in the "liberated" areas and create local security. The old man's job is to supervise these councils.
"I am a representative of the movement and I walk among the people and everyone knows me. I move between the people and the commanders, watching the commanders' behaviour. I listen to the people and convey the picture to the supreme leaders," he said.
Had the Taliban changed? A future administration would be based on Islamic rule, which was what the Afghan people wanted, but it would be different in detail from the Taliban regime that had ruled in Kabul before. "We will not rule based on theory. The people want us to be more pragmatic."
He quoted the Muslim poet Muhammad Iqbal. "When the painter works on the same old painting again, he will make it much better.
"The Taliban that will return will not be like the old Taliban. We have learned from the old mistakes. We will accept others. We are not and cannot be all of Afghanistan, but we are an important part of it."
From Khost I traveled to nearby Ghazni province to meet a commander of the Quetta Taliban I had met two years before.
Last time I saw Mawlawa Halimi he was scared and kept a watch at the doors and window of the small hotel where we had lunch. He had just been promoted to lead a small unit and he moved around incognito, fearing government agents and police checkpoints.
In the intervening years he had become one of the most senior commanders in the province. He was a few pounds chubbier, his hair was longer and he had an air of authority. I waited for him in the bazaar. He arrived on a motorbike with an armed guard riding pillion and no one in the bazaar gave him a second glance. He drove ahead, leading us to a mud-walled compound.
As we followed him, an American patrol passed along the main road a hundred metres distant, three huge armoured trucks wrapped with mesh fences to counter RPG attacks, each with two sets of armoured wheels in front to detect and detonate improvised explosive devices and landmines. The soldiers in their gun turrets trained their weapons left and right.
"Last time we met, the atmosphere in this area was tense. The villages and markets you passed through were targeted by the Americans," Halimi said.
"They used to come here a lot and life for people was difficult. Now, with Allah's grace, this is all ours.
"The war has changed. I used to fear the government wherever I went. Now we move everywhere and carry our guns with us. Two years ago we were just trying to defend our areas. Now we control this area and we go to the main street to attack."
He highlighted another major difference with the Taliban of two years ago. Then, the foot soldiers had all been trained in the madrasas. Now they were less ideological.
"It's a mistake to call all of the fighters Taliban. The Taliban are madrasa students and I am a mullah, but most of my fighters are peasants and farmers and students who come from the government schools.
"In winter we send them to Pakistan to get some religious training, but they are not Taliban," Halimi said.
"When we sit and watch the news on TV we hear that the Taliban attacked here and there and destroyed tanks and killed soldiers. Then in the next news item you hear that the Americans are calling for negotiations and of course you understand that these two news items are related. The second news item is the result of the first, and the Americans want to negotiate because they are losing.
"Why don't they just leave?" he said. "What are they waiting for?"
The ambassador
The fluffed-up sofas in the Kabul living room of Abdul Salam Zaeef, the former Taliban ambassador to Pakistan, have seated many high-ranking dignitaries in recent months as officials from the UN, the EU and Nato have come visiting.
It is a dramatic change of affairs for a man who spent three years from 2002 in prison in Guantánamo and who, until July this year, was on the UN list of known terrorists.
Zaeef is now a prolific writer and speaks five languages fluently. According to many Taliban insiders, if there are any negotiations between the Taliban and the Americans they will go through him.
"The Americans came and sat here," he said, pointing at one of the big sofas. "They said they needed to talk to the Taliban but couldn't find them. They didn't know who the Taliban were. I said go and look, they are everywhere, the Taliban have shadow governors and administrators, why don't you go and talk to them?"
The real reason the Americans didn't talk, he said, was that they had no respect for the Taliban.
"I told the Americans to respect their enemy. You can't negotiate with the Taliban from a position of strength, so why would the Taliban come and talk to you? If you want talks you have to treat the Taliban as equals."
In any negotiation, the Taliban would assert that as long as their land was under occupation they would struggle to liberate it.
They would continue to fight until the foreigners left. Their argument was with the Americans, not the Afghan government. They did not want to bring down the government, they just wanted to renew it.
"The Taliban have no problem with the Afghan government. We have no problem with Karzai or the Afghans. The problem lies with the Americans," he said.
"Why would we negotiate with Karzai if he has no say in running his government? They are under occupation and all orders come from foreigners."
The Americans, he said, had not talked to any senior Taliban to his knowledge. However, "the government and the Taliban have been talking for two years on local matters, health-related issues, prisoner exchange, education.
"This is not a negotiation, this is a way to help and benefit our Afghan people and nation. Negotiations haven't started yet."
The Americans had a right to know that Afghanistan would not be used as a base for attacks against them, he said, but that was all.
"The Americans have one right only, and that is their right to be assured that Afghanistan will not be used against them and that is something the Taliban should give.
"Apart from that they have no rights, they have no right to tell us about democracy and human rights. That's an Afghan issue and it will be decided by the Afghans.
"The Americans behave with arrogance and if they don't want to be defeated in Afghanistan they should talk.
"They don't belong here," he said. "They are foreigners, outsiders."
Labels: Afghanistan, America, Taliban


text:
Crystal Geyser in hot water for secretly disposing of arsenic-filled waste
Crystal Geyser charged by a grand jury for improperly disposing of toxic water contaminated with arsenic
Crystal Geyser in hot water for secretly disposing of arsenic-filled waste Crystal Geyser charged by a grand jury for improperly disposing of toxic water contaminated with arsenic Check out this story on desertsun.com: https://desert.sn/2Ll0ktB
Christopher Damien, Palm Springs Desert Sun Published 11:37 a.m. PT July 24, 2018 | Updated 11:41 a.m. PT July 24, 2018
Jay Calderon/The Desert Sun Water is bottled at numerous bottling plants throughout California, with brands ranging from Arrowhead to Crystal Geyser. Starbucks bottles its Ethos Water at a Safeway-Lucerne Foods plant in Merced, but announced plans to move its operation to Pennsylvania ?due to the serious drought conditions and necessary water conservation efforts? in California. California's water is bottled by numerous plants around the state.(Photo: Jay Calderon/The Desert Sun)Buy Photo
Bottled water giant Crystal Geyser has been charged by a grand jury with 16 counts of violating environmental and hazardous waste laws, after the jury viewed evidence that the company improperly disposed of toxic waste, a Department of Justice press release said.
According to court records disclosed on July 19, Crystal Geyser created an "Arsenic Pond" in a remote part of eastern California between Death Valley and The Sequoia National Forest, and then didn't disclose that water they pumped out of the pond and delivered to water treatment plants was full of the poisonous heavy metal.
Crystal Geyser's parent company, CG Roxane, along with two contracted companies, each face a maximum of $8 million in fines if convicted.
"This case was opened due to the hazards posed by illegal management and transportation of hazardous wastes," said Special Agent-in-Charge Jay Green of the Environmental Protection Agency's criminal enforcement program in California.
According to an investigation by the EPA's Criminal Investigations Division and the Department of Transportation's Office of Inspector General, Crystal Geyser produced thousands of gallons of arsenic-contaminated water at its Olancha, CA facility, about 200 miles north of Los Angeles.
More: Nestlé granted three-year permit to keep piping water out of California national forest
More: Bottled water giant Nestlé tells California regulators it's entitled to keep piping water
Crystal Geyser harvests water with naturally-occurring arsenic, it filters the water to make it safe for bottling, and in the process has to back-flush its filters for re-use. When the filters are back-flushed for cleaning, thousands of gallons of contaminated water were diverted to a holding pond, the indictment said.
In 2014, the California Department of Toxic Substances Control notified Crystal Geyser that the wastewater was deemed hazardous waste and needed to be transported and treated in compliance with environmental and hazardous waste laws.
The Department of Justice said that the investigation and indictment did not concern the safety or quality of Crystal Geyser's bottled water.
Crystal Geyser stopped diverting wastewater into the Arsenic Pond in October 2014, the indictment said. The company was then left with the task of disposing of the poisonous water and the contaminated storing pond.
In 2015, Crystal Geyser hired United Pumping Services and United Storm Water, both based in Los Angeles County, to drain and transport the arsenic-contaminated water. Some of the water was transported to a hazardous waste facility in Los Angeles County. The remaining water was transported to a facility in Fontana, CA that was not permitted to the treat hazardous waste.
The three companies allegedly attempted to secretly transport the waste by not disclosing it on manifests as required by the Hazardous Materials Transportation Act and Resource Conservation Act.
In March and May of 2015, the indictment said, the companies repeatedly failed to tell authorities that they were transporting arsenic.
Laura Cunningham, California Director of Western Watersheds Project, said that pollution from industrial waste has been a particularly common issue in California's recent history. In the case of mining operations, toxic chemicals can similarly leach into ponds and pose serious health risks when they evaporate and become airborne.
"When the water that is holding chemicals like this evaporates, it creates a toxic dust that can blow around," Cunningham said. "It could then settle in other ponds, streams, and rivers. It could settle in the groundwater."
If exposed to toxic levels of arsenic, poisoning can result in severe digestion issues, skin discoloration, liver and kidney failure, destruction of red blood cells, and death.
United States Attorney Nick Hanna said this negligence threatens the health and safety of California's communities.
"Our nation's environmental laws are specifically designed to ensure that hazardous wastes are properly handled from beginning to end – from the point of generation to the point of disposal," Hanna said. "The alleged behavior of the three companies charged in this indictment undermines that important objective and jeopardizes the safety of our community."
Water safety advocates question whether regulations can keep the bottled water industry in check. Adam Scow, California director of Food and Water Watch, said he doubted the fine would amount to a threat to the company's business model.
"I think it's time for the state of California to assess whether it is in their interest for private companies to bottle water," Scow said. "Public oversight of water is critical. Water is our most important public resource."
Read or Share this story: https://desert.sn/2Ll0ktB
Palm Springs awards historic status to Kirk Douglas home
2 In-N-Out opponents want to unseat Rancho Mirage incumbents
Palm Springs International Film Festival jury award winners announced
Indian Wells deals blow to plan for CV Link access
6 arrested in Thousand Palms burglary sweep
Wells Fargo in Rancho Mirage robbed at gunpoint; branch safety questioned


Do you have plans for visiting New York City this summer? Well, we are sure that you are simply going to fall in love with it. Everything that the city has to offer is simply amazing and the vibe you'll feel will even give you food for thought about moving to New York for good. This is exactly what happened to numerous people who now live and work in New York, so I wouldn't be surprised to find out that it has happened to you too. Until then, you need to enjoy the city to the fullest and to experience it as much as possible. There are numerous places to visit and things to do so it can be quite complicated to make a choice. Before getting back home, you also need to make sure that you bring nice souvenirs to your loved ones and that you get some memories from this unique experience. This is why we recommend you to visit Hand Crafted and Original, which is not quite easy to find but it is worth the effort. If you are looking for a handmade souvenir, then this is the place to be. Memories of New York is another gift shop that you should check out, a souvenir shop packed with ''I love New York'' items and a delightful owner always ready to help.
After visiting some nice gift shops, there is one more thing that you should do in New York City: schedule an appointment with the experts at Better Brows NYC. Visit them at https://www.betterbrowsnyc.com/ and they will help you get perfect eye brows for an affordable price rate. Check them out, find out more about them and prepare to be impressed. I know for sure that you will not regret the choice.


text:
Q: Pop Up in Angular and Getting Value from PopUP On click Save Button, PopUp should open by let dialogRef = this.dialog.open(this.callAPIDialog); and I need <textarea matInput placeholder="Leave a comment" formControlName="description"></textarea> and submit Button in the pop up. And On clicking Submit, Value to be transferred same Function.
Can anyone help on this ?

A: in you dialog add
(click)="dialogRef.close(value)"

and you will get it here
dialogRef.afterClosed().subscribe(result => {
  console.log(`Dialog result: ${result}`); // which will be value
})

please check this link for more https://material.angular.io/components/dialog/overview


Dr. Irving graduated and received D.M.D. from the University of Pennsylvania School of Dental Medicine. She has Advanced Education in General Dentistry from the University of Medicine and Dentistry of New Jersey, UMDNJ. Dr. Irving attends over 75 hours of continuing education each year and has restored over 500 implants. Dr. Irving is Certified Laser and Certified Invisalign Provider. She is also a Clear Correct Certified Provider and she is recognized as one of the BEST DENTIST in Ocean County.
Dr. Irving was born and raised in New Jersey, and is the proud mother of two daughters.


An epithet is a word or phrase that describes an attribute that characterizes a particular person. Usually, an epithet is disparaging, but not always. An epithet may also be a title that describes an attribute of a person or thing, such as Edward the Confessor and Richard the Lionheart. Epithet is derived from the Greek word epitheton, which means attributed.
A sobriquet is a nickname or familiar name that is bestowed upon someone. A sobriquet is usually bestowed in a friendly manner, it is an informal way of referring to a person. The word sobriquet comes from the Middle French word soubriquet which means a jest, literally meaning a chuck under the chin. The alternate spelling of soubriquet is also considered correct. The words epithet and sobriquet are somewhat interchangeable but epithets tend to be negative or formal and sobriquets tend to be positive and informal.