text:
Q: .NET SslStream doesn't close TLS connection properly .NET's SslStream class does not send the close_notify alert before closing the connection.
How can I send the close_notify alert manually?

A: Thanks for this question. It pointed me into the right direction, that there is a bug in .Net, which I do not very often think about.
I bumped into this problem during writing of my implementation of FTPS server and Filezilla (or GnuTLS probably) client was complaining "GnuTLS error -110 in gnutls_record_recv: The TLS connection was non-properly terminated". I think it is a quite significant drawback in SslStream implementation.
So I ended up with writing a wrapper which sends this alert before closing the stream:
public class FixedSslStream : SslStream {
    public FixedSslStream(Stream innerStream)
        : base(innerStream) {
    }
    public FixedSslStream(Stream innerStream, bool leaveInnerStreamOpen)
        : base(innerStream, leaveInnerStreamOpen) {
    }
    public FixedSslStream(Stream innerStream, bool leaveInnerStreamOpen, RemoteCertificateValidationCallback userCertificateValidationCallback)
        : base(innerStream, leaveInnerStreamOpen, userCertificateValidationCallback) {
    }
    public FixedSslStream(Stream innerStream, bool leaveInnerStreamOpen, RemoteCertificateValidationCallback userCertificateValidationCallback, LocalCertificateSelectionCallback userCertificateSelectionCallback)
        : base(innerStream, leaveInnerStreamOpen, userCertificateValidationCallback, userCertificateSelectionCallback) {
    }
    public FixedSslStream(Stream innerStream, bool leaveInnerStreamOpen, RemoteCertificateValidationCallback userCertificateValidationCallback, LocalCertificateSelectionCallback userCertificateSelectionCallback, EncryptionPolicy encryptionPolicy)
        : base(innerStream, leaveInnerStreamOpen, userCertificateValidationCallback, userCertificateSelectionCallback, encryptionPolicy) {
    }
    public override void Close() {
        try {
            SslDirectCall.CloseNotify(this);
        } finally {
            base.Close();
        }
    }
}

And the following code is to make it working (this code requires assembly to be 'unsafe'):
public unsafe static class SslDirectCall {
    public static void CloseNotify(SslStream sslStream) {
        if (sslStream.IsAuthenticated) {
            bool isServer = sslStream.IsServer;

            byte[] result;
            int resultSz;
            var asmbSystem = typeof(System.Net.Authorization).Assembly;

            int SCHANNEL_SHUTDOWN = 1;
            var workArray = BitConverter.GetBytes(SCHANNEL_SHUTDOWN);

            var sslstate = ReflectUtil.GetField(sslStream, "_SslState");
            var context = ReflectUtil.GetProperty(sslstate, "Context");

            var securityContext = ReflectUtil.GetField(context, "m_SecurityContext");
            var securityContextHandleOriginal = ReflectUtil.GetField(securityContext, "_handle");
            NativeApi.SSPIHandle securityContextHandle = default(NativeApi.SSPIHandle);
            securityContextHandle.HandleHi = (IntPtr)ReflectUtil.GetField(securityContextHandleOriginal, "HandleHi");
            securityContextHandle.HandleLo = (IntPtr)ReflectUtil.GetField(securityContextHandleOriginal, "HandleLo");

            var credentialsHandle = ReflectUtil.GetField(context, "m_CredentialsHandle");
            var credentialsHandleHandleOriginal = ReflectUtil.GetField(credentialsHandle, "_handle");
            NativeApi.SSPIHandle credentialsHandleHandle = default(NativeApi.SSPIHandle);
            credentialsHandleHandle.HandleHi = (IntPtr)ReflectUtil.GetField(credentialsHandleHandleOriginal, "HandleHi");
            credentialsHandleHandle.HandleLo = (IntPtr)ReflectUtil.GetField(credentialsHandleHandleOriginal, "HandleLo");

            int bufferSize = 1;
            NativeApi.SecurityBufferDescriptor securityBufferDescriptor = new NativeApi.SecurityBufferDescriptor(bufferSize);
            NativeApi.SecurityBufferStruct[] unmanagedBuffer = new NativeApi.SecurityBufferStruct[bufferSize];

            fixed (NativeApi.SecurityBufferStruct* ptr = unmanagedBuffer)
            fixed (void* workArrayPtr = workArray) {
                securityBufferDescriptor.UnmanagedPointer = (void*)ptr;

                unmanagedBuffer[0].token = (IntPtr)workArrayPtr;
                unmanagedBuffer[0].count = workArray.Length;
                unmanagedBuffer[0].type = NativeApi.BufferType.Token;

                NativeApi.SecurityStatus status;
                status = (NativeApi.SecurityStatus)NativeApi.ApplyControlToken(ref securityContextHandle, securityBufferDescriptor);
                if (status == NativeApi.SecurityStatus.OK) {
                    unmanagedBuffer[0].token = IntPtr.Zero;
                    unmanagedBuffer[0].count = 0;
                    unmanagedBuffer[0].type = NativeApi.BufferType.Token;

                    NativeApi.SSPIHandle contextHandleOut = default(NativeApi.SSPIHandle);
                    NativeApi.ContextFlags outflags = NativeApi.ContextFlags.Zero;
                    long ts = 0;

                    var inflags = NativeApi.ContextFlags.SequenceDetect |
                                NativeApi.ContextFlags.ReplayDetect |
                                NativeApi.ContextFlags.Confidentiality |
                                NativeApi.ContextFlags.AcceptExtendedError |
                                NativeApi.ContextFlags.AllocateMemory |
                                NativeApi.ContextFlags.InitStream;

                    if (isServer) {
                        status = (NativeApi.SecurityStatus)NativeApi.AcceptSecurityContext(ref credentialsHandleHandle, ref securityContextHandle, null,
                            inflags, NativeApi.Endianness.Native, ref contextHandleOut, securityBufferDescriptor, ref outflags, out ts);
                    } else {
                        status = (NativeApi.SecurityStatus)NativeApi.InitializeSecurityContextW(ref credentialsHandleHandle, ref securityContextHandle, null,
                            inflags, 0, NativeApi.Endianness.Native, null, 0, ref contextHandleOut, securityBufferDescriptor, ref outflags, out ts);
                    }
                    if (status == NativeApi.SecurityStatus.OK) {
                        byte[] resultArr = new byte[unmanagedBuffer[0].count];
                        Marshal.Copy(unmanagedBuffer[0].token, resultArr, 0, resultArr.Length);
                        Marshal.FreeCoTaskMem(unmanagedBuffer[0].token);
                        result = resultArr;
                        resultSz = resultArr.Length;
                    } else {
                        throw new InvalidOperationException(string.Format("AcceptSecurityContext/InitializeSecurityContextW returned [{0}] during CloseNotify.", status));
                    }
                } else {
                    throw new InvalidOperationException(string.Format("ApplyControlToken returned [{0}] during CloseNotify.", status));
                }
            }

            var innerStream = (Stream)ReflectUtil.GetProperty(sslstate, "InnerStream");
            innerStream.Write(result, 0, resultSz);
        }
    }
}

Windows API used:
public unsafe static class NativeApi {
    internal enum BufferType {
        Empty,
        Data,
        Token,
        Parameters,
        Missing,
        Extra,
        Trailer,
        Header,
        Padding = 9,
        Stream,
        ChannelBindings = 14,
        TargetHost = 16,
        ReadOnlyFlag = -2147483648,
        ReadOnlyWithChecksum = 268435456
    }

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    internal struct SSPIHandle {
        public IntPtr HandleHi;
        public IntPtr HandleLo;
        public bool IsZero {
            get {
                return this.HandleHi == IntPtr.Zero && this.HandleLo == IntPtr.Zero;
            }
        }
        [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
        internal void SetToInvalid() {
            this.HandleHi = IntPtr.Zero;
            this.HandleLo = IntPtr.Zero;
        }
        public override string ToString() {
            return this.HandleHi.ToString("x") + ":" + this.HandleLo.ToString("x");
        }
    }
    [StructLayout(LayoutKind.Sequential)]
    internal class SecurityBufferDescriptor {
        public readonly int Version;
        public readonly int Count;
        public unsafe void* UnmanagedPointer;
        public SecurityBufferDescriptor(int count) {
            this.Version = 0;
            this.Count = count;
            this.UnmanagedPointer = null;
        }
    }

    [StructLayout(LayoutKind.Sequential)]
    internal struct SecurityBufferStruct {
        public int count;
        public BufferType type;
        public IntPtr token;
        public static readonly int Size = sizeof(SecurityBufferStruct);
    }

    internal enum SecurityStatus {
        OK,
        ContinueNeeded = 590610,
        CompleteNeeded,
        CompAndContinue,
        ContextExpired = 590615,
        CredentialsNeeded = 590624,
        Renegotiate,
        OutOfMemory = -2146893056,
        InvalidHandle,
        Unsupported,
        TargetUnknown,
        InternalError,
        PackageNotFound,
        NotOwner,
        CannotInstall,
        InvalidToken,
        CannotPack,
        QopNotSupported,
        NoImpersonation,
        LogonDenied,
        UnknownCredentials,
        NoCredentials,
        MessageAltered,
        OutOfSequence,
        NoAuthenticatingAuthority,
        IncompleteMessage = -2146893032,
        IncompleteCredentials = -2146893024,
        BufferNotEnough,
        WrongPrincipal,
        TimeSkew = -2146893020,
        UntrustedRoot,
        IllegalMessage,
        CertUnknown,
        CertExpired,
        AlgorithmMismatch = -2146893007,
        SecurityQosFailed,
        SmartcardLogonRequired = -2146892994,
        UnsupportedPreauth = -2146892989,
        BadBinding = -2146892986
    }
    [Flags]
    internal enum ContextFlags {
        Zero = 0,
        Delegate = 1,
        MutualAuth = 2,
        ReplayDetect = 4,
        SequenceDetect = 8,
        Confidentiality = 16,
        UseSessionKey = 32,
        AllocateMemory = 256,
        Connection = 2048,
        InitExtendedError = 16384,
        AcceptExtendedError = 32768,
        InitStream = 32768,
        AcceptStream = 65536,
        InitIntegrity = 65536,
        AcceptIntegrity = 131072,
        InitManualCredValidation = 524288,
        InitUseSuppliedCreds = 128,
        InitIdentify = 131072,
        AcceptIdentify = 524288,
        ProxyBindings = 67108864,
        AllowMissingBindings = 268435456,
        UnverifiedTargetName = 536870912
    }
    internal enum Endianness {
        Network,
        Native = 16
    }

    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
    [DllImport("secur32.dll", ExactSpelling = true, SetLastError = true)]
    internal static extern int ApplyControlToken(ref SSPIHandle contextHandle, [In] [Out] SecurityBufferDescriptor outputBuffer);

    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
    [DllImport("secur32.dll", ExactSpelling = true, SetLastError = true)]
    internal unsafe static extern int AcceptSecurityContext(ref SSPIHandle credentialHandle, ref SSPIHandle contextHandle, [In] SecurityBufferDescriptor inputBuffer, [In] ContextFlags inFlags, [In] Endianness endianness, ref SSPIHandle outContextPtr, [In] [Out] SecurityBufferDescriptor outputBuffer, [In] [Out] ref ContextFlags attributes, out long timeStamp);

    [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)]
    [DllImport("secur32.dll", ExactSpelling = true, SetLastError = true)]
    internal unsafe static extern int InitializeSecurityContextW(ref SSPIHandle credentialHandle, ref SSPIHandle contextHandle, [In] byte* targetName, [In] ContextFlags inFlags, [In] int reservedI, [In] Endianness endianness, [In] SecurityBufferDescriptor inputBuffer, [In] int reservedII, ref SSPIHandle outContextPtr, [In] [Out] SecurityBufferDescriptor outputBuffer, [In] [Out] ref ContextFlags attributes, out long timeStamp);
}

Reflection utilities:
public static class ReflectUtil {
    public static object GetField(object obj, string fieldName) {
        var tp = obj.GetType();
        var info = GetAllFields(tp)
            .Where(f => f.Name == fieldName).Single();
        return info.GetValue(obj);
    }
    public static void SetField(object obj, string fieldName, object value) {
        var tp = obj.GetType();
        var info = GetAllFields(tp)
            .Where(f => f.Name == fieldName).Single();
        info.SetValue(obj, value);
    }
    public static object GetStaticField(Assembly assembly, string typeName, string fieldName) {
        var tp = assembly.GetType(typeName);
        var info = GetAllFields(tp)
            .Where(f => f.IsStatic)
            .Where(f => f.Name == fieldName).Single();
        return info.GetValue(null);
    }

    public static object GetProperty(object obj, string propertyName) {
        var tp = obj.GetType();
        var info = GetAllProperties(tp)
            .Where(f => f.Name == propertyName).Single();
        return info.GetValue(obj, null);
    }
    public static object CallMethod(object obj, string methodName, params object[] prm) {
        var tp = obj.GetType();
        var info = GetAllMethods(tp)
            .Where(f => f.Name == methodName && f.GetParameters().Length == prm.Length).Single();
        object rez = info.Invoke(obj, prm);
        return rez;
    }
    public static object NewInstance(Assembly assembly, string typeName, params object[] prm) {
        var tp = assembly.GetType(typeName);
        var info = tp.GetConstructors()
            .Where(f => f.GetParameters().Length == prm.Length).Single();
        object rez = info.Invoke(prm);
        return rez;
    }
    public static object InvokeStaticMethod(Assembly assembly, string typeName, string methodName, params object[] prm) {
        var tp = assembly.GetType(typeName);
        var info = GetAllMethods(tp)
            .Where(f => f.IsStatic)
            .Where(f => f.Name == methodName && f.GetParameters().Length == prm.Length).Single();
        object rez = info.Invoke(null, prm);
        return rez;
    }
    public static object GetEnumValue(Assembly assembly, string typeName, int value) {
        var tp = assembly.GetType(typeName);
        object rez = Enum.ToObject(tp, value);
        return rez;
    }

    private static IEnumerable<FieldInfo> GetAllFields(Type t) {
        if (t == null)
            return Enumerable.Empty<FieldInfo>();

        BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
                             BindingFlags.Static | BindingFlags.Instance |
                             BindingFlags.DeclaredOnly;
        return t.GetFields(flags).Concat(GetAllFields(t.BaseType));
    }
    private static IEnumerable<PropertyInfo> GetAllProperties(Type t) {
        if (t == null)
            return Enumerable.Empty<PropertyInfo>();

        BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
                             BindingFlags.Static | BindingFlags.Instance |
                             BindingFlags.DeclaredOnly;
        return t.GetProperties(flags).Concat(GetAllProperties(t.BaseType));
    }
    private static IEnumerable<MethodInfo> GetAllMethods(Type t) {
        if (t == null)
            return Enumerable.Empty<MethodInfo>();

        BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic |
                             BindingFlags.Static | BindingFlags.Instance |
                             BindingFlags.DeclaredOnly;
        return t.GetMethods(flags).Concat(GetAllMethods(t.BaseType));
    }
}

I am not experienced in writing reliable interaction with unmanaged environment, so I hope somebody can have a look and fix issues (and maybe make it 'safe').

A: It's a bug in .NET's usage of the underlying security API. Note another question by me about being unable to select a specific cypher suite - they really botched up this API wrapper...

A: For the record, SslStream at least in .NET 2.0 also doesn't appear to response to a close_notify from the other side.  This means that calling OpenSSL's SSL_Shutdown() properly, i.e. twice - once to initiate the shutdown and again to wait for the response - will hang on the second call.


text:
Home » George J. Schmitt
George J. Schmitt
George J. Schmitt of Port Washington, formerly of Milwaukee, Grafton and Cecil, passed away on Friday, Nov. 18, 2022, at the age of 93.
He was born in Milwaukee to John and Bertha (Arndt) Schmitt on Feb. 10,1929.
George married Audrey Bertz on Feb. 7, 1953, at St. Leo's Catholic Church in Milwaukee, and together they had three children.
George graduated from Marquette Catholic High School.
He worked for his father in their corner grocery store located on 22nd and Chambers in Milwaukee. From there he became a food salesman and was in the grocery business until he retired at age 70.
In his retirement, George stayed busy. He drove a hearse for Andrus Limousine Service, watered flowers for the Port Washington marina and drove cars for a local car dealership, among other things.
His favorite pastimes were getting in the car just to go for a ride and attending every one of his great-grandson's sporting events.
George enjoyed getting together with his Army buddies for monthly luncheons and for many years he baked hundreds of dozens of Christmas cookies for the VA Hospital in Milwaukee.
George will remain in the hearts of his children Kathy (Gary) Burmesch, Mike (Mary) Schmitt and Linda (Scott) Baumann-Dunning; grandchildren T.J. (Miranda) Burmesch, Emily (Jason) Zalewski, Katie (Patrick) Phillips, Patrick Schmitt, Michael (Carrie) Baumann, Daniel (Melissa) Baumann and Sarah Baumann; and great-grandchildren Broderek, Brekken, Bowe, Maryn, Remi, Parker, Harrison, Graham, Jacob (Kira), Jonathan, Joseph and Ashley. He is further survived by other relatives and friends.
He was preceded in death by his parents, wife Audrey, brother Robert (Frances) Schmitt and brother-in-law Donald (Carol) Bertz.
A Mass of Christian Burial will be held at 6:30 p.m. Wednesday, Nov. 30, 2022, at St. John XXIII Parish, St. Peter of Alcantara Catholic Church, 1800 N. Wisconsin St., Port Washington, WI 53074. The family will receive visitors at the church from 4:30 to 6:30 p.m. There will be a Knights of Columbus walk through at 5:30 p.m. and military honors will immediately follow the service.
George will be laid to rest next to his wife at Holy Cross Catholic Cemetery in Milwaukee.
In lieu of flowers, memorials to the family are appreciated and will be used for a park bench in George's memory and for the Honor Flight.
Eernisse Funeral Home is assisting the family with arrangements.
Online condolences may be left at www.eernissefuneralhome.com.

redpajama_set_name: RedPajamaCommonCrawl


text:
Home Music News Yungblud has 'nearly finished' an entire album in lockdown
Yungblud has 'nearly finished' an entire album in lockdown
The 'Mars' hitmaker has been "mad-creative" amid the global health crisis with touring off the cards for now and hinted it might not be too long before his fans get a follow-up to December's chart-topper, 'weird!'.
He told fans on Instagram Live this week: "I'm in the studio. We've been locked down here. I've been so mad-creative! I've literally nearly got another album done, which is just f****** mental. I can't wait for you to see."
Yungblud – whose real name is Dom Harrison – released his debut album, '21st Century Liability', back in 2018, and recently shared how he feels he's evolved over the last couple of years.
He said: "I don't have to hide behind an insecure anger like there was on my first album, '21st Century Liability'.
"I'm a lot more reasonable than I used to be instead of barking straight back, which is what I used to do because I'd been hit by pain and aggression and backlash my whole life."
The 'cotton candy' star loves to experiment with his sound, but admitted he finds the music industry "depressing" because people are so keen to label him or pigeonhole him into one area.
In another interview, he said: "That's what I found so depressing about the record labels and the press. One day I wear a dress and fishnets, the next a suit. One day I want to do a hip-hop track, the next a metal one. That's who I am. Who cares? That's my generation."
Previous articleEmma Bunton glad she was not a teenage Spice Girl in the age of social media
Next articleShakira sells music catalogue to Hipgnosis


Have fun and enjoy the sun while you swim and play into the pool. Our indoor/outdoor heated pool is open year round for your enjoyment. Take a dip or just relax by the side.
Relax and let the worries of the day slip away as you unwind in our hot whirlpool.
For the more energetic…be sure to enjoy our fitness & entertainment center endowed with a variety of health and fitness equipment, weights and cross-training equipment.
Play some volleyball in one of the city's best courtyards.
Guest rooms for a restful stay and the convenience for the business and leisure traveler.


We bring the faith community together to help families regain their housing, their independence, and their dignity.
A mother loses her job, a father is kept from working by an injury, a family is forced from their home by fire or natural disaster. Health care costs soar, public transportation is underfunded, affordable housing is almost impossible to find. These are the reasons why families now make up 40 percent of the homeless population, and why one out of every four homeless people is a child.
In response to this crisis, Family Promise brings the faith community together to help families regain their housing, their independence, and their dignity. Family Promise is a partnership of congregations within a community helping families who are facing homelessness. It offers an opportunity for volunteers of all faiths to reduce homelessness and transform lives.
We recognize that poverty is a complex problem that requires a multifaceted response. We respond by integrating educational outreach, smart programming, effective policies, and the hands-on work of thousands of volunteers.
We provide food, shelter, and support services for homeless families. We provide advice and advocacy for at-risk families to prevent them from becoming homeless. And we educate people about poverty and the means to combat it.
In the words of guests and volunteers… testimonials about the dynamics of the families we help and the success' they have achieved in our program. And why it's so important to do what we do!


text:
Q: Genetic Algorithm using fixed length vector I am trying to implement a genetic algorithm using fixed-length vectors of real numbers. I found a simple implementation online using a binary encoded values.
My confusion arises when I am trying to figure out a way to initialise the array and set the bounds for this algorithm.
Below is a snippet of the code with binary decoded code:
def decode(bounds, n_bits, bitstring):
decoded = list()
largest = 2**n_bits
for i in range(len(bounds)):
    # extract the substring
    start, end = i * n_bits, (i * n_bits)+n_bits
    substring = bitstring[start:end]
    # convert bitstring to a string of chars
    chars = ''.join([str(s) for s in substring])
    # convert string to integer
    integer = int(chars, 2)
    # scale integer to desired range
    value = bounds[i][0] + (integer/largest) * (bounds[i][1] - bounds[i][0])
    # store
    decoded.append(value)
return decoded

Can this be rewritten as an array of real numbers to encode a solution and not a bit string?
The full code is from the following article: Simple Genetic Algorithm From Scratch in Python
# genetic algorithm search for continuous function optimization
from numpy.random import randint
from numpy.random import rand

# objective function
def objective(x):
    return x[0] ** 2.0 + x[1] ** 2.0

# decode bitstring to numbers
def decode(bounds, n_bits, bitstring):
    decoded = list()
    largest = 2 ** n_bits
    for i in range(len(bounds)):
        # extract the substring
        start, end = i * n_bits, (i * n_bits) + n_bits
        substring = bitstring[start:end]
        # convert bitstring to a string of chars
        chars = ''.join([str(s) for s in substring])
        # convert string to integer
        integer = int(chars, 2)
        # scale integer to desired range
        value = bounds[i][0] + (integer / largest) * (bounds[i][1] - bounds[i][0])
        # store
        decoded.append(value)
    return decoded

# tournament selection
def selection(pop, scores, k=3):
    # first random selection
    selection_ix = randint(len(pop))
    for ix in randint(0, len(pop), k - 1):
        # check if better (e.g. perform a tournament)
        if scores[ix] < scores[selection_ix]:
            selection_ix = ix
    return pop[selection_ix]

# crossover two parents to create two children
def crossover(p1, p2, r_cross):
    # children are copies of parents by default
    c1, c2 = p1.copy(), p2.copy()
    # check for recombination
    if rand() < r_cross:
        # select crossover point that is not on the end of the string
        pt = randint(1, len(p1) - 2)
        # perform crossover
        c1 = p1[:pt] + p2[pt:]
        c2 = p2[:pt] + p1[pt:]
    return [c1, c2]

# mutation operator
def mutation(bitstring, r_mut):
    for i in range(len(bitstring)):
        # check for a mutation
        if rand() < r_mut:
            # flip the bit
            bitstring[i] = 1 - bitstring[i]

# genetic algorithm
def genetic_algorithm(objective, bounds, n_bits, n_iter, n_pop, r_cross, r_mut):
    # initial population of random bitstring
    pop = [randint(0, 2, n_bits * len(bounds)).tolist() for _ in range(n_pop)]
    # keep track of best solution
    best, best_eval = 0, objective(decode(bounds, n_bits, pop[0]))
    # enumerate generations
    for gen in range(n_iter):
        # decode population
        decoded = [decode(bounds, n_bits, p) for p in pop]
        # evaluate all candidates in the population
        scores = [objective(d) for d in decoded]
        # check for new best solution
        for i in range(n_pop):
            if scores[i] < best_eval:
                best, best_eval = pop[i], scores[i]
                print(">%d, new best f(%s) = %f" % (gen, decoded[i], scores[i]))
        # select parents
        selected = [selection(pop, scores) for _ in range(n_pop)]
        # create the next generation
        children = list()
        for i in range(0, n_pop, 2):
            # get selected parents in pairs
            p1, p2 = selected[i], selected[i + 1]
            # crossover and mutation
            for c in crossover(p1, p2, r_cross):
                # mutation
                mutation(c, r_mut)
                # store for next generation
                children.append(c)
        # replace population
        pop = children
    return [best, best_eval]

# define range for input
bounds = [[-5.0, 5.0], [-5.0, 5.0]]
# define the total iterations
n_iter = 100
# bits per variable
n_bits = 16
# define the population size
n_pop = 100
# crossover rate
r_cross = 0.9
# mutation rate
r_mut = 1.0 / (float(n_bits) * len(bounds))
# perform the genetic algorithm search
best, score = genetic_algorithm(objective, bounds, n_bits, n_iter, n_pop, r_cross, r_mut)
print('Done!')
decoded = decode(bounds, n_bits, best)
print('f(%s) = %f' % (decoded, score))

A: It appears that you are referencing the code in this article: Simple Genetic Algorithm From Scratch in Python.
The bit-vector representation of individuals that is used in the starting code is an encoding of a real-valued vector. If you want your representation of an individual to be a real-valued vector, it means that you don't have do any decoding or encoding at all.
Initialize your population to be a vector of random real values within the bounds
def genetic_algorithm(objective, bounds, n_iter, n_pop, r_cross, r_mut):
    # initial population of random real-valued vectors
    pop = [[random.uniform(bound[0], bound[1]) for bound in bounds] for _ in range(n_pop)]
...

Then, in the genetic algorithm itself, there is no need to decode the population, since they are already real-valued vectors.
# genetic algorithm
def genetic_algorithm(objective, bounds, n_iter, n_pop, r_cross, r_mut):
    # initial population of random real-valued vectors
    pop = [[random.uniform(bound[0], bound[1]) for bound in bounds] for _ in range(n_pop)]
    # keep track of best solution
    best, best_eval = 0, objective(pop[0])
    # enumerate generations
    for gen in range(n_iter):
        # evaluate all candidates in the population
        scores = [objective(d) for d in pop]
        # check for new best solution
        for i in range(n_pop):
            if scores[i] < best_eval:
                best, best_eval = pop[i], scores[i]
                print(">%d, new best f(%s) = %f" % (gen, pop[i], scores[i]))
        # select parents
        selected = [selection(pop, scores) for _ in range(n_pop)]
        # create the next generation
        children = list()
        for i in range(0, n_pop, 2):
            # get selected parents in pairs
            p1, p2 = selected[i], selected[i + 1]
            # crossover and mutation
            for c in crossover(p1, p2, r_cross):
                # mutation
                mutation(c, r_mut)
                # store for next generation
                children.append(c)
        # replace population
        pop = children
    return [best, best_eval]

The one thing that remains to be addressed is to modify the mutation and crossover functions so that they operate on real-valued vectors, instead of bit-strings. There are many approaches to how you could implement mutation and cross-over for real-valued vectors; some examples are listed in this StackOverflow post.

You have a genome with certain genes:
genome = { GeneA: value, GeneB: value, GeneC: value }

So take for example:
genome = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 }

A few examples of mutation could be:

*

*Switch around two genes: { GeneA: 1, GeneB: 3.4, GeneC: 2.5 }

*Add/substract a random value from a gene: { GeneA: 0.9, GeneB: 2.5, GeneC: 3.4 }
Suppose you have two genomes:
genome1 = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 }
genome2 = { GeneA: 0.4, GeneB: 3.5, GeneC: 3.2 }

A few examples of crossover could be:

*

*Taking the average: { GeneA: 0.7, GeneB: 3.0, GeneC: 3.3 }

*Uniform (50% chance): { GeneA: 0.4, GeneB: 2.5, GeneC: 3.2 }

*N-point crossover: { GeneA: 1, | CROSSOVER POINT |  GeneB: 3.5, GeneC: 3.2 }

redpajama_set_name: RedPajamaStackExchange


The 5th edition of the Indian Screenwriters Conference (ISC), the biennial event organized by the Screenwriters Association, will be held on August 1st, 2nd and 3rd, 2018 at the St. Andrew's Auditorium, Bandra. The Chief-Guest of the inaugural session will be actor-producer-director Aamir Khan, while the reputed journalist and Padma Shri awardee Vinod Dua will deliver the Keynote Address. The theme of the conference this year 'Where Mind Is Without Fear' is focusing on the challenges facing Indian Screenwriters today.
The conference is expected to see a large number of screenwriters and established professionals from the film and TV industries, as well as the digital media. It will also provide a platform for networking to all its participants. Stimulating discussions and insightful sessions await the participants at 5ISC, with panelists and speakers who're amongst the most respected and knowledgeable professionals from the entertainment and media industry.
Siddharth Roy Kapur, Akshat Verma, Somen Mishra, Amit Masurkar, Anjum Rajabali, Basharat Peer, Rima Das, Sumeet Vyas, Rajan Shahi, Vetrimaaram, Shridhar Raghavan, Swanand Kirkire, Kausar Munir and Varun Grover are some of the names who will engage in discussions as part of the various panels.
The Indian Screenwriters Conference was started with the idea of addressing issues concerning Indian screenwriters and lyricists, while also encouraging a dialogue on the surrounding social realities, within and outside the film and TV industries.
Also Read: SCOOP! Aamir Khan to play OSHO and Alia Bhatt to be MA SHEELA in Karan Johar's next?


Staff accountant needed for a part-time opportunity. Accounting experience required. Will maintain records and worksheets, organize receipts, and manage payment processing. Must be detail-oriented and have intermediate QuickBooks knowledge.


You're out of luck if you hoped to go to an Apple store this Friday and walk away with an iPhone 7 Plus or the jet black iPhone 7: both have sold out across the globe.
Apple says that its initial supplies of the iPhone 7 Plus have sold out across the world and won't be available in stores when the smaller version of the iPhone 7 hits shelves on Friday.
All variants of the larger model will be impossible to buy in Apple's stores at its Friday retail launch, and Apple suggests it will be difficult for customers to purchase any model if they haven't reserved their purchase ahead of time.
It appears more iPhone 7 models will be available at launch, however the iPhone 7 in the new glossy jet black option sold out during the pre-order phase and also won't be available in stores on Friday, Apple said.
Apple said there will "limited quantities" of the iPhone 7 in silver, gold, rose gold, and black at retail stores.
Customers can however still order all models of the new iPhone via its website, Apple said. Fans may have better luck at Apple's partner retail stores.
"We couldn't be happier with the initial response to iPhone 7 and iPhone 7 Plus, and we are looking forward to beginning sales through our retail stores and partners around the world," Apple said in a full statement posted by TechCrunch.
"We sincerely appreciate our customers' patience as we work hard to get the new iPhone into the hands of everyone who wants one as quickly as possible."
Earlier this week several US carriers reported record pre-order sales for the latest iPhone models with T-Mobile proclaiming the iPhone 7 was the biggest pre-order in its history, up by 400 percent on previous records.
Sprint said initial iPhone 7 and iPhone 7 Plus pre-sales were up 375 percent compared to last year's iPhone 6s and iPhone 6s Plus launch.
Apple this year skipped its usual release of first weekend sales for the latest iPhone because it was no longer a relevant measure of the device's strength with consumers. Apple said initial sales will be "governed by supply, not demand".
The iPhone 7 and iPhone 7 Plus look almost identical to the two previous generation models, except for the missing headphone jack. Both of this years models have upgraded processors, water and dust resistance, and a new home button.
The new iPhones ship with iOS 10, which Apple released for existing iPhones this week, bringing new lock screen notifications, a more visual Messages with iMessages apps, a refreshed Photos apps, and a muted the passcode unlock in favour of Touch ID.
According to third-party figures, iOS 10 adoption reached about 15 percent within the first day, making it faster than iOS 9 adoption.
The new iPhones were to be available on Friday in Australia, Austria, Belgium, Canada, China, Denmark, Finland, France, Germany, Hong Kong, Ireland, Italy, Japan, Luxembourg, Mexico, Netherlands, New Zealand, Norway, Portugal, Puerto Rico, Singapore, Spain, Sweden, Switzerland, Taiwan, UAE, the UK, US Virgin Islands, and the US.


This infographic illustrates the top 20 downloaded retro video game ROM's of all time. These games we primarily featured on popular arcade machines and made it into our homes via a broad range of retro games consoles.
Nowadays these games are legally and illegally downloaded all around the internet as ROMs where people run them on their PC's and homemade arcade consoles like Raspberry Pie and traditional arcade cabinets. Data is compiled from the sources you'll find at the bottom of the infographic.


C Track is our solution for hanging artworks from the ceiling.
C Track is our solution for hanging artworks when you absolutely cannot fix to the wall, such as when you need to protect wooden panels. It is slim, just 16mm wide, and robust, providing a simple and strong fixing point to hang artworks from the ceiling.
The C Track can be fixed prior to the installation of drywall or tiles to provide a flush slot in the ceiling, or surface mounted when the installation is a retrofit. Artworks can then be hung at any position along the track using a choice of transparent cord, stainless steel cable or stainless steel rod.
C Track is an anodised aluminium extrusion that is available in either soft silver finish or white and comes in lengths of 2.5m. It measures a discreet 15mm in height x 16mm in width. The track comes pre-drilled and is easy to cut to length on site. Note: There is a slight widening to allow for the top blocks for the hanging sets to be inserted 100mm in from one end, the track should be trimmed from the opposite end.
Hanging artworks from the ceiling will never match the weight capacity of hanging from a wall. The C Track is slim and robust, but its overall strength will be governed by the number of fixings into something solid. The track is delivered pre-drilled at 300mm centres. However, because ceiling support structures vary so much, we have designed this track with an internal countersink. This means that it's easy to drill the track wherever you find a sound fixing point and know that the countersunk screw will sit snugly in the base of the track. For fixing your C Track, we recommend #8 (4mm) wood screws.
Bear in mind that when an artwork is hung away from the wall, it has a tendency to lean forward. With the goal of keeping the work as vertical as possible you should make your attachments as high on the rear of the frame as possible or even consider the option of fixing to the top edge of the frame.
If it becomes necessary to fix into the drywall, then be sure to use 'hollow core fixings' to achieve the best hold. When done properly, drywall can be capable of carrying up to 8 kg.
If you are installing multiple lengths of C Track, we supply simple connecting pins that help you to align the lengths of track for an even finish. These are inserted in the 2mm holes at the end of the track, connecting both lengths. Connecting pins will only be supplied with orders of 2 or more lengths.
There are a range of components that work with the C Track to provide the look that suits your installation. The accessories are sold in sets that include a pair of hanging lengths, top blocks and fixings. You will need a set per work, and can choose either a barrel for use with our Ryman Hanger, or a hook if your work will be hung with a wire. All accessories can also be purchased separately, should you want to hang more than one work per hanging length set.


Vehicles can seem like living breathing beings so that when a family car comes to the end of its life it can seem like the loss of a close relative.
I acquired our Vauxhall Astra Merit in 1997 from my late father-in-law who bought it a few months before he died. It had been my main means of transport ever since taking me to work every day and, in the company of my wife and children, on numerous holidays in Britain and on the continent.
Now we have retired from our day jobs there is no need for my wife and I to have separate cars. It was time to purchase something new we could both share and time for the Astra to go. The children did not want it so after seeing a sign outside our local fire station asking for old cars that were no longer needed we decided that this was a fitting end for a long time faithful servant who had never let us down.
So long P233 LUK you have served us well and deserve to go out in a blaze of glory.


text:
Un fichier .ROL est un type de fichier qui décrit une musique. Il s'apparente aux fichiers MIDI par le fait qu'il décrit l'intention de la musique plutôt que son extension ; les notes sont décrites par des événements plutôt que par un échantillonnage. Toutefois, ses possibilités sont plus limitées.

Il s'agit du format utilisé par le logiciel Visual Composer de la compagnie Ad Lib, développé dans les années 1980 et conçu pour fonctionner avec la carte-son Ad Lib.

Description du format

Tous les champs sont des entiers par défaut.
Les champs qui sont marqués «float» sont au format «float» des processeurs 80x86.
Le fichier est structuré par les champs suivants, dans l'ordre :

1. Numéro majeur de la version, doit être 0. : 2 octets
2. Numéro mineur de la version, doit être 4. : 2 octets
3. Espace inutilisé : 40 octets
4. Nombre de «tics» par temps : 2 octets
5. Nombre de temps par mesure : 2 octets
6. Échelle de l'éditeur en Y pour le logiciel Visual Composer : 2 octets
7. Échelle de l'éditeur en X pour le logiciel Visual Composer : 2 octets
8. Espace inutilisé : 1 octet
9. Mode de canaux (1 = 9 voix mélodiques+0 voix percussives ; 1=6 voix mélodiques+5 voix percussives) : 1 octet
10. Espace inutilisé, doit être rempli avec des zéros. : 90 octets
11. Remplissage (?) : 38 octets
12. Remplissage (?) : 15 octets
13. Tempo, sous forme d'un nombre à virgule flottante (float en langage C) : 4 octets (float).
14. Nombre de répétitions des champs #15 et #16 : 2 octets
15. Moment où un événement de changement de tempo survient, en «tics» : 2 octets
16. Valeur de multiplication du tempo pour un événement de changement de tempo (de 0.01 à 10.0) : 4 octets (float)
Répéter les champs #17 à #34 pour chacune des 9 (en mode mélodique) ou 11 (en mode percussif) voix :
17. Remplissage (?) : 15 octets
18. Moment de la dernière note+1 pour la voix courante, en «tics». : 2 octets
Répéter les champs #19 et #20 tant et aussi longtemps que la somme de 20 est inférieure à la valeur du champ #18 :
19. Numéro de la note pour un événement de note, de 12 à 107, où 60 donne le do central, 61 donne do#, 62 donne ré, etc. Pour un silence, c'est 0. 2 octets
20. Durée de la note, en «tics» : 2 octets.
21. Remplissage (?) : 15 octets
22. Nombre de répétitions des champs #23 à #26 : 2 octets
23. Moment où un événement de changement d'instrument survient, en «tics» : 2 octets.
24. Nom de l'instrument pour un événement de changement d'instrument, sous forme d'une chaine de caractères fixée à 9 octets : 9 octets
25. Remplissage (?) : 1 octet
26. Inutilisé : 2 octets
27. Remplissage (?) : 15 octets
28. Nombre de répétitions des champs #29 et #30 : 2 octets
29. Moment d'un événement de changement de volume, en «tics» : 2 octets
30. Multiplicateur de volume pour un événement de changement de volume, de 0.0 à 1.0 : 4 octets (float)
31. Remplissage (?) : 15 octets
32. Nombre de répétitions des champs #33 et #34 : 2 octets
33. Moment d'un événement de modification précise de la fréquence des notes, en «tics» : 2 octets
34. Modification précise de la fréquence des notes, de 0.0 à 2.0, où 1.0 veut dire que la note est juste : 4 octets (float)

Informatique musicale

redpajama_set_name: RedPajamaWikipedia


If a hot air balloon ride isn't on your bucket list, now's the time to add it on! Not only is this a once-in-a-lifetime opportunity, but also, Orlando is the perfect location to make this dream a reality. Orlando Balloon Rides make for either a romantic and serene adventure and are the perfect addition to any Orlando vacation plans. Your journey starts one hour before dawn in nearby Davenport, Fla., and as the sun rises in the sky, so do you for breathtaking views of the sunrise over the horizon. Soar over the Central Florida landscape for a truly unique view, as you pass by the classic iconic Disney attractions, over swamps, orange groves and much more! After an hour in the sky, the balloon lands and you conclude your Orlando Balloon Ride experience with a traditional champagne toast, making the perfect beginning to any day.
Orlando Balloon Rides use newly-constructed partitioned baskets made of wicker and stainless steel, offering guests a secure tour of the Orlando skies. With over 100 years of combined experience, the resident pilots are experts in aviation, and all flights adhere strictly to FAA safety standards. Flights are weather-permitting and are easy to re-schedule if modified, so leave your worries behind and enjoy this peaceful journey as you admire the unique terrain and magnificent landscape of the City Beautiful!
FAA Certified Pilots. Fully Licensed & Insured.
Schedule: Meeting time is approximately one hour before sunrise. This can be anywhere from 5:30am to 6:30am depending on the time of year.
Ticket is valid 18 months from date of purchase.
All guests must make a reservation at least 3 days in advance.
Vouchers MUST be printed prior to arrival.


text:
Q: Mystery: keyboardDidShow Being Called, But It's Not Wired My code is working perfectly to reduce the size of a UITextView when the keyboard comes up. The problem is, the signature of the method is
- (void)keyboardDidShow:(NSNotification*)aNotification

but the calling code
//[nc addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];

is commented out! I have searched low and high using grep and refactor in XCode (to see who else might be calling the method), and nothing comes up. I've checked the nibs just in case. I have tried cleaning targets, etc., but to no avail. If I rename the  method, it does not get called (but this produces no errors). Any ideas as to how/where this method is being "wired?"

A: So as it turns out, you implemented keyboardDidShow: in a UITextField subclass. However, the UITextField class itself implements this method as well, so since you've overridden it in your subclass your implementation will be getting called, instead of the UIKit one. Even though you never called it in your code, UIKit did it for you.
So that explains why your method was being called, and that renaming the method fixed the problem.


text:
Your Five Places
The HOW2 app was developed through feedback from our schools and colleges. It's designed to be easy to use — in fact, ready to use in minutes. There are just five places to go. You can get to any one of these places from anywhere.
Your Home Page
Your personalised home page. Learn more.
This is where you'll find all the HOW2s. Learn more.
HOW2 Page
View each HOW2 in three visual formats. Learn more.
Skills Exchange
Search for colleagues to learn from and with. Learn more.
Suggest and take specific actions, optionally with colleagues. Learn more.
The HOW2 Process
Say Hello to HOW2s


You are currently viewing all ratings received by user tiner.
Count of all ratings received: 25. Total of points: 43.
3998 croleva 32 tiner 2011-06-08 21:20:34 5 fair buyer/seller via paypal. worth trading with.
4329 rmunroe 31 tiner 2011-06-08 01:51:38 1 Quick, smooth transaction.
4431 BitCashier 25 tiner 2011-06-08 18:03:09 1 Easy, straightforward transaction.
4199 GaroadRan 9 tiner 2011-06-06 19:35:12 1 faster pp buyer! pleasure!


Grandma Dora and Grandpa in the back yard of the "brown house" down the road from their farm house.
Family get togethers often pop up during the summer. We had one coming up, with my husband's, mother's side of the family. Hamburgers were on the menu for the main dish. Everyone was asked to bring a side of some kind to go along with it. Now, being the mulit-tasker that I am, I decided it would be in my best interest to use one of my Grandma Dora's recipes. That way I'd be getting my side dish and a blog entry ready at the same time. So, I pulled out the recipe for Peach Whip. Fruit salads, are such a "picnicky," potluck food and it seemed appropriate. I also thought (which was the real reason I picked it) that it seemed like it wouldn't require a lot of effort, which was good, since I was in a pinch for time.
Mix boiling water and lemon jello packet until dissolved. Set aside. Drain peach juice from can and add water until you have 1 cup. Add to jello. Mash peaches and mix them into jello mixture. Fold in Cool Whip. Chill in the refrigerator overnight or until set. Stir before serving.
Then I mashed the peaches.
After the water had boiled, I measured out a cup and stirred in a box of the jello until it dissolved. I added a cup of peach juice and the mashed peaches. Then I stirred in the Cool Whip and put it in the fridge to set until morning.
In the morning, I mixed up the Peach Whip and packed it into the cooler to take to the reunion. It was served along side of the dessert, for those who didn't want cake. It was a light, fluffy salad. The lemon jello gave it just the right amount of tartness, but it was also sweet because of the peaches and Cool Whip. Peach Whip is a jello salad that could be served as a side with a meal or as a summer dessert. The extended family really seemed to enjoy it! I was glad that I had chosen to make it and was really happy it was so simple!
I would make it following the same directions as I did for Peach Whip. Boil water and dissolve with lime jello. Add pear juice and mashed pears. Mix in cream cheese. Refrigerate until set. Stir before serving.
I hope you enjoy these delicious summer jello salads! They are simple and easy to add to any meal!
This entry was posted in Jello Salad and tagged fruit salad, grandma's cooking, jello salad, lemon dessert, peach dessert, Summer dessert by GrandmothersRecipeBox. Bookmark the permalink.


This training teaches you what to do if asbestos is encountered, and why it should be left undisturbed, as well as detailing the risks, health effects and legislation regarding the substance.
This course enables delegates to establish the methods used to identify the presence of asbestos and the course of action to take once it is discovered.
This course gives you the information you need to assess and manage the risks of asbestos, and to know what to do when you encounter it.
Candidates are required to complete a Multiple Choice test paper to achieve certification.


text:
Toggle News & Features only:
News | Features
Follow @SoxProspects
SP on Facebook
Subscribe to SP News
SP Videos on YouTube
Join the SP Forum
Donate to SP
SoxProspects News Staff
Mike Andrews
Ian Cundall
Jim Crowell
Will Woodward
Harry Burnham
Nick Rabasco
Shawn McGrath
Zachary Bohn
Connor Sullivan
Mark Hanoian
News Archive (By Date)
A Twitter List by MikeAndrewsSP
Cup of Coffee (2549)
Player Movement (842)
Sox System Notes (605)
Draft News (463)
SoxProspects Awards (348)
First-Hand Reports (290)
ESPNBoston (178)
Exclusive Columns (156)
Fort Reports (132)
SoxProspects Interviews (124)
Top 40 in Review (114)
Scouting Scratch (110)
Prospect Previews (106)
The Book (42)
The Ladder (34)
The Write-Up (28)
System Restart (21)
Notes from the Field (16)
Staff Top 40 (16)
Trade Analysis (16)
First Take (15)
PSAs (15)
Positional Outlook (15)
Scouting Report Updates (12)
Spring Training (9)
Player Retrospective (5)
Fall Instructional League (4)
Rankings Report (3)
The Lineup Card (3)
Transaction Analysis (3)
SoxProspects News
Cup of Coffee: Portland, Salem, Greenville put up big offense
8/10 Cup of Coffee: Portland, Salem and Greenville, all led by big offensive outputs, put up wins on Friday, combining to score 33 runs. The PawSox and the Spinners came up one run short, while the GCL Red Sox and the DSL Red Sox won close games on the back of strong pitching performances.
Despite a late-inning rally, the Pawtucket Red Sox dropped their contest to the Syracuse Chiefs (WAS) 5-4 on Friday. Entering the top of the ninth inning, the PawSox were down by a score of 5-3. Back-to-back singles to lead off the inning by Jonathan Diaz and Tony Thomas put runners on the corners for Ronald Bermudez, who hit a sacrifice fly plating Diaz. After Jackie Bradley Jr. was called out on strikes, Thomas stole second base, putting himself in scoring position for Xander Bogaerts, who was unable to capitalize by flying out to left field.
PawSox starter Anthony Ranaudo (pictured) was shaky for his standards, giving up eight hits, two walks and four earned runs in five innings pitched. It was Ranaudo's second start for Pawtucket after spending the majority of the season in Portland, where he posted a 2.95 ERA in 109 2/3 innings.
The Portland Sea Dogs topped the Bowie Bay Sox (BAL) 9-7 in what turned out to be a high-scoring affair. The Sea Dogs took command of the game early, scoring four runs in the bottom of the first inning. The rally was started by Shannon Wilkerson's lead off double, one of two on the night, and was capped by Derrik Gibson's first of three doubles, which plated two runs. Sea Dogs starter Henry Owens, who was recently promoted from High A Salem, held the lead for Portland, although he only pitched four innings. They were an impressive four innings, however, as Owens struck out eight against only one walk.
After Bowie scored five runs in the top of the seventh to tie the game up, the Sea Dogs quickly responded with two runs in the bottom half of the inning on a two-RBI single from Kevin Heller, which proved to be the difference.
The Salem Red Sox, buoyed by a 12-hit offensive attack, bested the Winston-Salem Dash (CHW) 10-4 Friday. Although the scoreboard indicates a lopsided result, the Red Sox were actually trailing for about half of the game until a seven-run sixth inning. Entering the bottom of the sixth, Salem trailed 4-2. Three consecutive hits by Matthew Gedman, Cody Koback and Carson Blair led to the inning's first run. A fielding error loaded the bases for Deven Marrero, who drew a walk. Stefan Welch doubled, which plated two runs, and was followed by a sacrifice fly that scored Marrero. The next batter was Mookie Betts, who blasted a home run to left field, his third with Salem and 11th between leagues. Salem starter Mike Augliera was able to hang on long enough to benefit from the rally, picking up the win. Augliera gave up four runs on eight hits and one walk.
The Greenville Drive's offense exploded Friday, as an 18-hit and 14-run barrage was too much for the Asheville Tourists (COL), who fell 14-1. Leadoff man Sean Coyle (pictured), who recently returned from the disabled list earlier this week, had himself a night, going 4 for 5 with four runs scored and three extra-base hits, including a three-run home run. Following Coyle in the batter order and in performance was Reed Gragani, who went 3 for 5 with three runs scored. Drive designated hitter Mario Martinez drove in five runs in the game, going 2 for 6.
Hidden by the offensive onslaught was the pitching performance from starter Justin Haley, who gave the Drive seven strong innings. Haley scattered five hits and surrendered no walks in the start while striking out nine. The sole earned run given up lowered his season ERA to 3.59.
The Lowell Spinners fell to the Staten Island Yankees (NYY) 5-4 Friday. After trailing 5-0 after the third inning, the Spinners took the momentum following a four-run top of the sixth inning. However, Lowell was unable to muster the extra run to tie the game up, leading to the loss. In the sixth, the Spinners managed to plate four runs without an extra-base hit, relying on singles and walks. Of the only five hits collected in the game, Carlos Asuaje had two, including an RBI-single in the sixth.
Spinners starter Corey Littrell lasted only 2 1/3 innings, giving up three earned runs on three hits and two walks, while striking out four. A bright spot in the Lowell bullpen was Francisco Taveras, who struck out five batters in 2 1/3 perfect innings of relief.
The DSL Red Sox topped the DSL Astros 2-0 Friday led by an outstanding pitching performance. Red Sox starter Daniel Gonzalez hurled six strong innings, giving up only three hits and zero walks in seven innings pitched. Gonzalez, who picked up his second win of the season, has posted a 1.14 ERA in 39 1/3 innings this year. The eight-hit Red Sox attack was led by left fielder Raiwinson Lameda, who was 3 for 4 with a triple. The game's two RBI came off the bats of Javier Guerra and Isaias Lucena.
The GCL Red Sox held on to defeat the GCL Twins Friday by a score of 3-2. All of the scoring in this contest came early on, as the Twins took a 2-1 lead after the bottom of the second inning. The Red Sox would quickly respond with two runs of their own in the top of the third after a pair of singles from Mike Meyers and Nick Longhi. Red Sox starter and 2013 first-round selection Trey Ball only lasted 1 and 2/3 innings as he gave up two runs on two hits and two walks. Ball was followed by Randy Perez, who tossed five strong innings of relief.
Player of the Day: Greenville Drive second baseman Sean Coyle, who started the season at Salem before being sidelined with a knee injury, made a statement on his rehab stint on Friday. That statement was "I'm back." After going 0 for 5 the night before, Coyle went 4 for 5 with three extra-base hits, including two doubles and a home run. He also collected four runs scored and four RBI in the 14-1 route.
Photo Credit: Tony Thomas and Sean Coyle by Kelly O'Connor.
Luke Lavoie is a Staff Writer for SoxProspects.com.
Collapse...
Posted by Luke Lavoie
Copyright © 2003-2020 SoxProspects, LLC. All Rights Reserved.
Email: info@soxprospects.com


Qualified as Avocat à la Cour in Paris and Luxembourg, Emmanuelle Ragot, Partner, heads Wildgen's IP/TMT practice group as well as Wildgen 4 innovation, Wildgen legal hub for start-up businesses. Her approach is totally client-focused and she works upstream with her clients in order to implement the appropriate strategy to their needs. Throughout more than 20 years of practice in London, Paris and Luxembourg, Emmanuelle has developed a sound experience in protecting her clients' interests. Focused on both litigation and advisory work, she made a name for herself in litigation specifically related to IP rights and represents high-profile local and international clients in the protection, acquisition, negotiation, use, distribution of IP rights and IP tax structuring. She also advises her clients on data compliance for multi-jurisdiction TMT projects, drafting of agreements and negotiation of contracts related to the technology sector. Her field of activity includes data protection, technology regulation and general regulatory work.


Description: Letterpress composition with gold text on hand made marbleized paper. Signed and numbered in pencil, 3/10. This small edition offers a simple, direct statement rather than the quotations used with some of the other Typographs and the text was printed on differently-patterned sheets of marbled paper, thus making each print unique.


Fayetteville NY 13066 in the Board Room at 6:30 PM.
Agendas are available prior to the meetings. Minutes are available from the Town Clerk following approval.
The Town of Manlius Town Board is composed of the Town Supervisor 6 Town Councilors. These are all elected, part-time positions. Normally, local elections are held each odd-numbered year in November at the General Election.
The Supervisor serves a 2-year term and the Councilors serve a 4-year term. Three Councilor positions are up for election every 2 years.
A majority of the Board members must be present in order to constitute a quorum for the transaction of business, and the vote of each Board member upon every question is recorded in the official minutes of the meetings. An affirmative vote of a majority of all members of the Board is required for the adoption of any action, motion, or legislation.
The meetings are open to the public. Please see the Rules of Decorum at Public Meetings (PDF) document before attending.


text:
Former Flagships: From LG G3 to Sony Xperia Z2
Several months back I accidentally dropped my LG G3 and had the screen replaced, but unfortunately it now seems to be becoming glitchy, so I decided to replace the phone with something different/better. On my limited budget, I went for a one of the G3's competitors (of the era), a Sony Xperia Z2 as it has a 20MP camera, 3GB RAM, decent size battery, shatter-proof screen and waterproof (IP58 certified) body. I found a decent secondhand one on eBay at a reasonable price. It only has a few marks on the rear glass back, the rest is in great condition, including the 5.2 inch 1080p screen.
First impressions when I picked it up out the box was it's feels reassuringly heavy and robust, particularly the metal sides and buttons. Booting up, the device led me through the setup wizard, including creation of a Sony account. When I had finished I realized I could have used their backup/restore tool to restore straight from my G3! The default look isn't a stock look, the icons and widgets look a bit toy-like to me, so I installed Nova and replicated a cleaner, nearer stock look, with Marshmallow icons, in the same way I did with my G3. Like the LG, the Z2 has Knock To Wake (but not Knock to screen off), it just needs to be enabled in the settings. It might take me awhile to really get used to having the buttons on the side of the phone again, especially as the Z2 has the Power button and Volume rocker in the centre of the side of the device.
The Z2 currently runs Sony's version of Lollipop 5.1.1 (my LG G3 only has 5.0.2), it feels quick and I have so far not felt any lag, likely helped by a lighter UI and 3GB RAM. My G3 used to underclock itself when it got hot so it sometimes lagged briefly. All Z2s will get Marshmallow at some point, and there's a beta currently available for some. There's quite a few extra apps I am not sure I actually need, mostly camera effects, and some can be 'uninstalled' but at least it's easier to make it look stock than with LG. For example, Sony does not skin the Quick Settings so they're not ugly like LG's. However if you do not disable these extra apps, particularly Facebook and Twitter, you will find they bloat up to huge sizes as each update adds to the original size of the app and the 16GB version quickly feels too small.
The Sony Z2 has a 20MP camera that can record video at 2160p@30fps, 1080p@60fps (compared to 30FPS on my G3) and 720P@120fps. It does not have Optical Image Stabilisation (OIS) which the LG G3 has. Slightly annoyingly HDR mode is buried in the stock camera settings, so it is not convenient. In fact most advanced features are only available when you set it in manual mode such as resolution and shot type. Luckily there are plenty of decent third party camera apps. Marshmallow will apparently bring the Z5 style camera interface to the Z2. I like the physical camera button, which can take you to the camera app when you hold it for 1 second, wherever you are in the OS or from the lockscreen. I do kind of miss the Quick Look case though. There's a ultra-quick burst mode setting, and you hold down the shutter button to activate it.
I'm a bit disappointed in the low light sunset shots by the Z2, as no matter which app I tried, I could not get a decent shot, as the white balance and contrast seems to be all out of whack, even when using HDR mode in other apps. I shall have to experiment further with settings and other camera apps to see if it can do better.
By default, the Sony camera app seems to use 8MP at 16:9 ratio, but I prefer to set it to Manual mode and 20MP at 4:3. I think the LG G3 has a greater dynamic range. On one very sunny day in Lincoln, I tested out the camera and found I got the best results, or at least to my tastes, using A Better Camera's HDR mode at 20MP, 4:3. The app used to suck the battery life out of my G3 but works just fine on the Z2. Here's a few examples:
You can find more photos from the same day here.
Here's another sunset shot, on a different day, that came out very well:
I am already noticing that I get far better battery life with the Z2 than I did with my LG G3. I used to have to charge my phone at some point in the early evening and then put on charge when I go to bed. The Z2 on the other hand seems to last me all day without that evening recharge, depending on usage. This is probably due to a combination of the larger 3200 mAh battery (the G3 one is 3000 mAh) and lower resolution screen. The G3's 1440p display might be larger, and pretty with it's tiny bezels, but it really does suck up more power. I also actually find the Z2's display more pleasing to my eyes and easier to see in bright sunlight. The G3 does have a removable battery, unlike the Sony, but it's not as convenient and obviously requires the purchase of a spare battery. I also like that I can remove the MicroSD card from the Sony without having to shut the phone down.
Call Audio Quality
When I first tested the Z2s in a call, the caller at the other end could barely hear me, as my mic audio volume seemed to be really low. However, I found out that disabling Microphone Noise Suppression (Settings > Call Settings) solves the problem. After a reboot, it's now perfectly acceptable, though in Skype it is still a little bit low so I think I shall be using my Bluetooth headset for that.
Overall, despite the slightly better camera performance on the LG G3, I prefer the Sony Xperia Z2 as it doesn't lag at all, or get as hot. One time I awoke to find my LG G3 was really hot and about to shut itself down. I had to leave it off for about 20 minutes or so until it had cooled down before attempting to use it again. The Z2 also feels more durable and can apparently survive a splash or a dunking, though I'm not going to test that myself on purpose! The G3 is a great device when it's working fine, but I much prefer the Sony Z2's reliability, better battery life, and solid performance as a daily driver.
Labels: android, cameras, ciomparison, LG G3, Lollipop, phones, photos, reviews, smartphones, sony xperia z2, UI
Kubuntu 16.04 Pre-Release Review


Welcome to issue 139 of the DashingD3js.com Weekly Newsletter.
Hope that you had a great past week and that next week is even better!
Want to better understand this topic?
© 2012-2016 DashingD3js.com. All rights reserved.


text:
Чан Динцю (Chang Dingqiu; ) — китайский лётчик и военачальник, генерал-полковник ВВС (06.09.2021), кандидат в члены ЦК КПК 19-го созыва (с 2017), с августа 2021 года главнокомандующий ВВС НОАК. Его назначение на должность командующего ВВС не стало неожиданностью для наблюдателей, он длительное время считался там «восходящей звездой» — и в свои 54 года стал самым молодым действующим полным генералом в НОАК. Генерал-лейтенант (июль или август 2018) — стал тогда самым молодым генерал-лейтенантом.

Родился в крестьянской семье в Хэнъяне провинции Хунань в годы Культурной революции. Служил лётчиком, командиром эскадрильи, командиром группы, командиром полка, заместителем командира дивизии и командиром дивизии в ВВС НОАК. В возрасте 33-х лет он стал самым молодым командиром лётного полка. В 2003 году недолговременно получал военное образование в России. Генерал-майор (сентябрь 2013). В 2016—2018 гг. заместитель командующего Южным театром боевого командования НОАК. Во время пребывания в этой должности в 2017 году сопровождал члена Центрвоенсовета Чжан Юся во время визита в Белоруссию и Венгрию. Являлся замначальника штаба НОАК. В 2019 году член делегации визита министра обороны Вэй Фэнхэ в США.

Предполагается, что в будущем он может занять место в Центрвоенсовете Китая. Один из материалов SCMP, посвящённый Чан Динцю, вышел в июне 2016 года под заголовком «Восходящая звезда в вооружённых силах Китая станет будущим лидером военно-воздушных сил».

Примечания

Ссылки
 http://ddzg.ciids.cn/content/2018-12/12/content_17850592.htm

Родившиеся в Хэнъяне
Генерал-полковники НОАК
Командующие ВВС НОАК
кандидаты в члены ЦК КПК


Expand the scope of viflow to meet your specific needs.
The viflow Applications are valuable tools for effective process management. They enable you to expand the scope of viflow far beyond process modelling.
viflow DMS is the easy way to link process management to document management.
This add-on enables you to manage relevant documents and data within the framework of your company organisation and in connection with your process management.
With viflow tracker you can analyze the usage data of your process model.
This solution shows you where the focus of interest lies in your process model and thus provides you with the basis for optimising the usability and benefits of your management system.
viflow Models help you reduce the cost of generating management documentation or converting it to digital, paperless form.
With viflow Models you reach your goal faster.
The viflow Model for the ISO 9001:2015 QM system was created by prominent QM textbook author Michael Cassel from Ratingen (Germany), whose practically oriented books have become standard references for the implementation of these standards.
The viflow Human Resource Master model helps you convert company goals or requirements from HR processes into results and benefits. Optimise your existing HR processes or create new ones from scratch – easily, quickly and flexibly.
The viflow Automotive Retail Master model is a product of ViCon's partner PGC Automotive. It supports process management in the automotive trade by documenting processes and procedures so clearly and understandably that process errors will be virtually eliminated in future.
viflow has many interfaces to supplementary software packages. They save you effort in data management and enhance overview and acceptance.
Copyright © 2003 – 2019 ViCon GmbH | viflow 6 – Applications | All rights reserved.


text:
Read the E-Paper
Readers' Choice Winners
Jail Mugs
Best shots
About & Policy
PENFED logo (PRNewsfoto/PenFed Credit Union)
PenFed Announces Record 2020 Results
TYSONS, Va., Jan. 13, 2021 /PRNewswire/ -- PenFed Credit Union, the nation's second largest federal credit union, today released financials highlighting the strongest year in the institution's 85-year history. In 2020, PenFed set records for membership growth, mortgage loan volume and consumer loan volume, while helping more members through the global pandemic.
"At PenFed we measure success by how many people we've helped. In 2020, PenFed helped more than 2.1 million members do better financially," said PenFed President & CEO James Schenck. "PenFed's record results are a combination of organic growth and a focused merger strategy paying huge dividends. Partnering with other credit unions over the last five years allowed us to rebuild infrastructure, upgrade technology systems and hire some of the industry's best leaders while building a strong capital position. In combination with our merger partners, we've built an engine that will provide PenFed a long-term strategic competitive advantage."
Among PenFed's highlights in 2020:
PenFed welcomed 389,000 new members, up 159% over 2019. Members benefited from some of the nation's lowest loan rates and highest deposit rates across the nation.
PenFed increased its charitable contributions to help those in need and gave back nearly $3 million to veterans, first responders and many other community heroes. The credit union supported nearly 100 charitable organizations in communities where its 2,700 employees and volunteers live and serve.
Total loan originations exceeded $16.6 billion, up 67% over 2019.
The mortgage division originated over $8.2 billion, up 202% from 2019.
The consumer lending division originated over $8.4 billion, up 16% from 2019.
PenFed sold and participated $5.3 billion worth of loans to other credit unions, up 288% over 2019, to maintain a steady asset growth rate near PenFed's long-term target of 5%.
PenFed earnings (adjusted for one-time COVID-19 reserves) exceeded more than $200 million, up 40% percent over 2019.
Members who experienced financial hardship as a result of COVID-19 were able to skip payments and apply for other special assistance.
Members who needed in-person access had sanitized lobbies or drive-throughs available at 44 branches throughout the pandemic.
PenFed closed 2020 with more than $2.8 billion in capital and a net worth ratio exceeding 10.5%. PenFed's capital cushion is almost $1 billion above the federal requirement to be well capitalized.
The PenFed Foundation became the first Veteran Service Organization to offer a COVID-19 Relief Program, helping thousands of active duty military and veterans survive the pandemic.
The PenFed Foundation's Veteran Entrepreneur Investment Fund created a Master's Program empowering veteran-owned businesses to grow while other businesses were shutting down.
"We couldn't have made all of this positive impact without our dedicated employees and loyal members," Schenck concluded. "During a time when many consumers found new ways to conduct their financial business, we are honored that more members chose PenFed's combination of digital access backed by world-class personal service. We hope PenFed members are proud of how their credit union fulfilled urgent needs in their communities during this most challenging year."
PenFed released this video to show how PenFed employees and members overcame the challenges of 2020 together.
About PenFed Credit Union
Established in 1935, Pentagon Federal Credit Union (PenFed) is America's second-largest federal credit union, serving over 2.1 million members worldwide with over $26 billion in assets. PenFed Credit Union offers market-leading certificates, checking, credit cards, personal loans, mortgages, auto loans, student loans, and a wide range of other financial services. Our mission is to empower members of our community to achieve their financial well-being. PenFed Credit Union is federally insured by the NCUA and is an Equal Housing Lender. To learn more about PenFed Credit Union, visit PenFed.org, like us on Facebook and follow us @PenFed on Twitter. Interested in working for PenFed? Check us out on LinkedIn. We are proud to be an Equal Employment Opportunity Employer.
Penfed Foundation
Penfed Credit Union
Johnson City plans new mural at I-26 overpass, preps work on Roan Street
'Fighting an enemy that we can't win against:' VA staff battles with COVID-19
Parents bound over in 19-month-old daughter's death
Three facing murder charges in 2017 shooting of pregnant woman plead to lesser charge
Johnson City Press ePaper
Johnson City homes for sale and property listings
© Copyright 2021 Johnson City Press, 204 West Main Street Johnson City, TN | Terms of Use | Privacy Policy


The purpose of BIS 300 Interdisciplinary Inquiry is to set the stage for students' success as they pursue an undergraduate degree in Interdisciplinary Arts & Sciences (IAS). The course provides an introduction to the use and keeping of portfolios, and an orientation to the IAS program portfolio and assessment process. The course stresses interdisciplinary inquiry and the richness of the resource environment in IAS. It encourages students to think about how various types of knowledge are produced, and how they can learn to think and act as researchers by becoming active, creative, and self-critical makers of knowledge in academic and non-academic genres.
2. Become more skilled at critical self-reflection on their learning by making connections among assignments through a course portfolio process that models the program's degree portfolio and promotes self-directed learning.
3. Become better critical thinkers, readers, and writers, capable of posing and addressing a variety of complex questions drawing on various types of evidence and writing in a variety of modes.
4. Become better inquiry-based researchers, able to use the resources at UWB and elsewhere in order to identify scholarly work while producing original knowledge through data gathering, interpretation and the use of evidence.
5. Become better writers and presenters, ones who are able to communicate clearly, engagingly, and persuasively about complicated topics, arguments, and issues.
6. Learn to work well collaboratively and to build shared leadership capacities.


text:
#pragma once

#include "ATen/cuda/CUDAContext.h"
#include "ATen/cuda/Exceptions.h"

#include "cudnn-wrapper.h"
#include <ATen/ATen.h>
#include <ATen/TensorUtils.h>
#include "ATen/cuda/ATenCUDAGeneral.h"
#include <cuda.h>

namespace at { namespace native {

// TODO: Add constructors for all of the descriptors

inline int dataSize(cudnnDataType_t dataType)
{
  switch (dataType) {
    case CUDNN_DATA_HALF: return 2;
    case CUDNN_DATA_FLOAT: return 4;
    default: return 8;
  }
}

// The stride for a size-1 dimensions is not uniquely determined; in
// fact, it can be anything you want, because the fact that the
// tensor is size 1 at this dimension means that you will never actually
// try advancing your pointer by this stride.
//
// However, CuDNN has a much more stringent requirement on strides:
// if you are passing a contiguous input, it better be the case
// that the stride for dim i is the product of the sizes of dims
// i+1 to the end.  This stride is indeed uniquely determined.  This
// function modifies 'stride' in place so this invariant holds.
static inline void fixSizeOneDimStride(int dim, const int *size, int *stride) {
  int64_t z = 1;
  for(int d = dim-1; d >= 0; d--)
  {
    if (size[d] == 1) {
      stride[d] = z;
    } else {
      z *= size[d];
    }
  }
}

template <typename T, cudnnStatus_t (*dtor)(T*)>
struct DescriptorDeleter {
  void operator()(T* x) {
    if (x != nullptr) {
      AT_CUDNN_CHECK(dtor(x));
    }
  }
};

// A generic class for wrapping cuDNN descriptor types.  All you need
// is to give the underlying type the Descriptor_t points to (usually,
// if it's cudnnTensorDescriptor_t it points to cudnnTensorStruct),
// the constructor and the destructor.  Subclasses are responsible
// for defining a set() function to actually set the descriptor.
//
// Descriptors default construct to a nullptr, and have a descriptor
// initialized the first time you call set() or any other initializing
// function.
template <typename T, cudnnStatus_t (*ctor)(T**), cudnnStatus_t (*dtor)(T*)>
class AT_CUDA_API Descriptor
{
public:
  // TODO: Figure out why const-correctness doesn't work here

  // Use desc() to access the underlying descriptor pointer in
  // a read-only fashion.  Most client code should use this.
  // If the descriptor was never initialized, this will return
  // nullptr.
  T* desc() const { return desc_.get(); }
  T* desc() { return desc_.get(); }

  // Use mut_desc() to access the underlying desciptor pointer
  // if you intend to modify what it points to (e.g., using
  // cudnnSetFooDescriptor).  This will ensure that the descriptor
  // is initialized.  Code in this file will use this function.
  T* mut_desc() { init(); return desc_.get(); }
protected:
  void init() {
    if (desc_ == nullptr) {
      T* raw_desc;
      AT_CUDNN_CHECK(ctor(&raw_desc));
      desc_.reset(raw_desc);
    }
  }
private:
  std::unique_ptr<T, DescriptorDeleter<T, dtor>> desc_;
};

class AT_CUDA_API TensorDescriptor
  : public Descriptor<cudnnTensorStruct,
                      &cudnnCreateTensorDescriptor,
                      &cudnnDestroyTensorDescriptor>
{
public:
  TensorDescriptor() {}
  explicit TensorDescriptor(const at::Tensor &t, size_t pad = 0) {
    set(t, pad);
  }

  // Note [CuDNN broadcast padding]
  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  // pad specifies the minimum dimensionality of the tensor descriptor
  // we produce (it doesn't have anything to do with, e.g., convolution
  // padding).  If 't' is lower-dimensional than 'pad', the remaining
  // dimensions (on the right) are padded with ones.  This doesn't
  // affect the underlying data layout.  This is particularly useful for
  // dealing with a pecularity of the CuDNN API, which is that broadcasting in CuDNN is
  // done in two steps: first, the client code is expected to pad out
  // (the dimensions) input tensors to be the same dimension as the
  // target broadcast, and then second, CuDNN takes of actually
  // broadcasting size 1 dimensions.

  void set(const at::Tensor &t, size_t pad = 0);
  void set(cudnnDataType_t dataType, IntList sizes, IntList strides, size_t pad = 0);

  void print();

private:
  void set(cudnnDataType_t dataType, int dim, int* size, int* stride) {
    fixSizeOneDimStride(dim, size, stride);
    AT_CUDNN_CHECK(cudnnSetTensorNdDescriptor(mut_desc(), dataType, dim, size, stride));
  }
};

std::ostream& operator<<(std::ostream & out, const TensorDescriptor& d);

class FilterDescriptor
  : public Descriptor<cudnnFilterStruct,
                      &cudnnCreateFilterDescriptor,
                      &cudnnDestroyFilterDescriptor>
{
public:
  void set(const at::Tensor &t, int64_t pad = 0);

private:
  void set(cudnnDataType_t dataType, int dim, int* size) {
    AT_CUDNN_CHECK(cudnnSetFilterNdDescriptor(mut_desc(), dataType, CUDNN_TENSOR_NCHW, dim, size));
  }
};

struct AT_CUDA_API ConvolutionDescriptor
  : public Descriptor<cudnnConvolutionStruct,
                      &cudnnCreateConvolutionDescriptor,
                      &cudnnDestroyConvolutionDescriptor>
{
  void set(cudnnDataType_t dataType, int dim, int* pad, int* stride, int * upscale /* aka dilation */, int groups) {
    cudnnDataType_t mathType = dataType;
    if (dataType == CUDNN_DATA_HALF) mathType = CUDNN_DATA_FLOAT;
    AT_CUDNN_CHECK(cudnnSetConvolutionNdDescriptor(mut_desc(), dim, pad, stride, upscale,
                                          CUDNN_CROSS_CORRELATION, mathType));
    AT_CUDNN_CHECK(cudnnSetConvolutionGroupCount(mut_desc(), groups));
    AT_CUDNN_CHECK(cudnnSetConvolutionMathType(mut_desc(), CUDNN_DEFAULT_MATH));
    if(dataType == CUDNN_DATA_HALF)
      AT_CUDNN_CHECK(cudnnSetConvolutionMathType(mut_desc(), CUDNN_TENSOR_OP_MATH));
  }
};

struct AT_CUDA_API SpatialTransformerDescriptor
  : public Descriptor<cudnnSpatialTransformerStruct,
                      &cudnnCreateSpatialTransformerDescriptor,
                      &cudnnDestroySpatialTransformerDescriptor>
{
  void set(cudnnDataType_t dataType, int dim, int* size) {
    AT_CUDNN_CHECK(cudnnSetSpatialTransformerNdDescriptor(mut_desc(), CUDNN_SAMPLER_BILINEAR, dataType, dim, size));
  }
};

struct AT_CUDA_API DropoutDescriptor
  : public Descriptor<cudnnDropoutStruct,
                      &cudnnCreateDropoutDescriptor,
                      &cudnnDestroyDropoutDescriptor>
{
  at::Tensor state;

  // Initialize a dropout descriptor's RNG state.
  // WARNING: This function is very expensive, avoid calling this function!
  // NB: it takes a Type so that we can generate a Variable if necessary.
  void initialize_rng(cudnnHandle_t handle, float dropout, long long int seed, const TensorOptions& options) {
    AT_ASSERTM(dropout > 0, "dropout must be nonzero; otherwise call set_no_dropout");
    size_t state_size;
    AT_CUDNN_CHECK(cudnnDropoutGetStatesSize(handle, &state_size));
    AT_ASSERT(options.device().type() == kCUDA);
    AT_ASSERT(options.dtype() == kByte);
    state = at::empty({static_cast<int64_t>(state_size)}, options);
    AT_CUDNN_CHECK(cudnnSetDropoutDescriptor(mut_desc(), handle, dropout, state.data_ptr(), state_size, seed));
  }

  // Restore a dropout descriptor given a dropout probability and existing RNG state.
  // See Note [cuDNN dropout descriptor initialization]
  void set(cudnnHandle_t handle, float dropout, at::Tensor state_) {
    AT_ASSERTM(dropout > 0, "dropout must be nonzero; otherwise call set_no_dropout");
    state = state_;
    void *state_ptr = state.data_ptr();
    size_t state_size = state.size(0);
    // NB: The seed doesn't actually matter, so we give a dummy value
    AT_CUDNN_CHECK(cudnnRestoreDropoutDescriptor(mut_desc(), handle, dropout, state_ptr, state_size, 0 /* seed */));
  }

  // Restore a dropout descriptor corresponding to no dropout
  // See Note [cuDNN dropout descriptor initialization]
  void set_no_dropout(cudnnHandle_t handle) {
    // NB: seed doesn't matter when dropout = 0, because no random number
    // initialization actually takes place when there is no dropout.
    // NB: Empirically, cudnnSetDropoutDescriptor is cheap when
    // dropoot == 0
    AT_CUDNN_CHECK(cudnnSetDropoutDescriptor(mut_desc(), handle, 0 /* dropout */, nullptr, 0 /* state_size */, 0 /* seed */));
  }
};

struct AT_CUDA_API RNNDescriptor
  : public Descriptor<cudnnRNNStruct,
                      &cudnnCreateRNNDescriptor,
                      &cudnnDestroyRNNDescriptor>
{
  DropoutDescriptor dropout_desc_;
  void set(cudnnHandle_t handle, int hidden_size, int num_layers, DropoutDescriptor&& dropout_desc,
           cudnnRNNInputMode_t input_mode, cudnnDirectionMode_t bidirectional,
           cudnnRNNMode_t mode, cudnnDataType_t datatype, cudnnRNNAlgo_t algo) {
    dropout_desc_ = std::move(dropout_desc);
    AT_CUDNN_CHECK(cudnnSetRNNDescriptor_v6(
          handle,
          mut_desc(),
          hidden_size,
          num_layers,
          dropout_desc_.desc(),
          input_mode,
          bidirectional,
          mode,
          algo,
          datatype));
#if CUDA_VERSION >= 9000
    cudaDeviceProp* prop = at::cuda::getCurrentDeviceProperties();
    if (prop->major >= 7) {
      if (datatype == CUDNN_DATA_HALF) {
        cudnnSetRNNMatrixMathType(mut_desc(), CUDNN_TENSOR_OP_MATH);
      } else {
        // Technically, as the default it's not necessary to explicitly
        // set this.
        cudnnSetRNNMatrixMathType(mut_desc(), CUDNN_DEFAULT_MATH);
      }
    }
#endif
  }
};

struct AT_CUDA_API CTCLossDescriptor
  : public Descriptor<cudnnCTCLossStruct,
                      &cudnnCreateCTCLossDescriptor,
                      &cudnnDestroyCTCLossDescriptor>
{
  void set(cudnnDataType_t datatype) {
    AT_CUDNN_CHECK(cudnnSetCTCLossDescriptor(mut_desc(), datatype));
  }
};

union Constant
{
  float f;
  double d;
  Constant(cudnnDataType_t dataType, double value) {
    if (dataType == CUDNN_DATA_HALF || dataType == CUDNN_DATA_FLOAT) {
      f = static_cast<float>(value);
    } else {
      d = value;
    }
  }
};

}}  // namespace

redpajama_set_name: RedPajamaGithub


Emmanuel College students are covered by the University of Toronto Policy on Student Financial Support.
Eligibility is limited to Emmanuel College domestic basic degree students who are registered from September to August or January to August in a conjoint degree program, and who demonstrate financial need.
Students are expected to explore all other avenues of financial support before applying for an Emmanuel College bursary. Students who are ineligible for government loans may be considered for bursary support.
Students should not expect bursary support to cover total budget shortfall.
To apply complete the application below and send to the Registrar via post, email or fax or bring it to the Emmanuel College Main Office in person.


By the end of the day I want to get un-ready as fast as possible – slip into pajamas, tie my hair into a ponytail, and remove any trace of makeup.
I am a huge fan of cleansing oils and oil-based balms to remove stubborn makeup and daily grit. Both are equally effective but in general cleansing balms are better for travel since they won't leak in your bag, making them an ideal buy for holiday season.
Why should you pre-cleanse with an oil?
Oil attracts oil. These long-wear makeup formulations that have been designed to outlive rain and shine won't really break down with your average cleanser. You need to kick things off with an oil that will break apart makeup, dirt and excess sebum on your skin.
With all of these cleansing balms, you'll apply it to dry skin and massage until all your makeup has broken up. Then add a little water to emulsify, work it loose and rinse. I recommend you follow with a normal cleanser, or do a second cleanse with your balm. I use it to remove all my makeup, including mascara.
Coconut oil works really well as a makeup remover but while the cleansers below will emulsify and dissolve when you add water, coconut oil won't – you have to work it off with a cleanser. So it is a bit more work, and a bit messier.
If you want to use coconut oil, you'll apply it to dry skin, work all your makeup loose (I use it on my eyes as well without any issues, just be sure to choose a fragrance-free variant). Then add cleanser directly to the oil, work it in again, and rinse. Take note you'll need a slightly foamy cleanser to cut the oil, a balm or milk cleanser doesn't work as well.
Be sure to remove your contact lenses before using a cleansing oil or balm on your lashes. Some cleansing oils react with the lenses, creating a cloudy patch.
Keen to get going? Give these a try.
Local beauty brand Lulu & Marula got rave reviews from when they first released their cleansing balm. Now they've upped their game with a new and improved formulation that emulsifies when you add water, making cleansing even easier.
The oil-to-milk formula rinses off easily, leaving a moisturised feel on the skin. It contains Marula Oil and Vitamin E to protect your skin's natural moisture barrier, while Bentonite clay absorbs excess sebum.
You can use this twice a day as a cleanser.
I was over the moon when I heard that Dermalogica extended their range to include a Precleanse Balm, a sister product to their original Precleanse Oil.
The pre-cleanse balm locks in hydration and reinforces your skin barrier while removing your makeup, sunscreen, lash glue, wax, whatever. They've also included a cleansing mitt that helps you get a proper clean (and it's fun to use).
Apply it to dry skin, massage all your makeup loose, add water and rinse. Then follow with your normal cleanser to take off any residue and double cleanse your skin.
This is a lightweight balm that does well to remove stubborn makeup, and since there's no friction, it is super gentle on your skin.
This formula took a little longer to take makeup off than some of the others I tried but it does work really well. It is also completely fragrance free, which is a huge plus point if you have sensitive skin and eyes. And the price is very nice too.
This was the first cleansing balm I tried and I am all kinds of in love with it. It instantly melts into a silky oil and it takes makeup off like an absolute dream. Plus the fragrance is incredible, turning the whole cleansing routine into a moment of pure indulgence.
This is a really clever product, especially for travel. It comes in a stick that you swipe across your skin. From here it softens into a balmy texture and once you add water it turns into a milky, microfoam.
The balm contains turmeric root extract, sunflower seed oil and vitamin E to leave your skin super soft, and it smells delicious. One note though, this one does burn your eyes so you'll have to remove mascara using a different product.
Which of these would you love to try? Pop your thoughts in the comments section below, I'd love to hear from you.
← We had lunch at Firefish, the new kid on the Waterfront sunset strip.
We had lunch at Firefish, the new kid on the Waterfront sunset strip.
Thanks! Hope you find one you love.


Voice activity detection (VAD) uses a representation of speech derived from spectrum analysis, followed by statistical characterization of speech and degrading noise. Features derived using traditional methods may not be adequate for VAD in the case of transient noises. In this paper, we focus on transient noises where most of the VAD systems in literature do not perform well. A high temporal resolution and high frequency resolution representation is used to discriminate the transient noises from speech.
The high temporal and frequency resolution representation is achieved by filtering the signal at several single frequencies. The single frequency filtering approach helps to isolate the regions of transient noise in a signal. A time varying threshold is proposed based on the spectral variance and the temporal variance of the speech signal to detect transient noise. The remaining regions are processed by the spectral variance measure for VAD. The results have been compared to the Adaptive Multi-rate (AMR) methods. The performance of proposed method is consistently better due to the instantaneous feature. The percentage of detection of transient noise is higher for the proposed method than the methods reported in the literature.
Bibliographic reference. Aneeja, G. / Yegnanarayana, B. (2014): "Speech detection in transient noises", In INTERSPEECH-2014, 2356-2360.


In 2016, LAND Studio started the INTER|URBAN project which is a city-wide initiative to create an experience that connects public transit riders physically, socially, and culturally. The INTER|URBAN serves as a platform for creative expression, world-class expierences, and community programming. Jasper came on board as an art director, artist and consultant on the project.
The vision for the project was deeply rooted in Cleveland and is driven by award winning novels from the Anisfield-Wolf Book Awards. Artists drew inspiration from themes inspired by the Anisfield-Wolf Book Award, which celebrates authors of literary works dealing with social justice and the celebration of diversity and the people of all cultures and backgrounds.
Follow the journey with these photos by Brandon Shigeta.


Maestro Steve Eva and the Chagrin Falls Studio Orchestra will present a tribute to Frank Sinatra staring Las Vegas performer Tom Tiratto at the 4th annual Benefit Concert on Saturday, February 9 at the Intimate Chagrin Valley Little Theater. The full Studio Orchestra along with a screaming swing band will be on hand to make this a truly unique evening. The actual Frank Sinatra huge musical scores have been transcribed for this event and you will not hear this anywhere else. This elegant evening includes: Valet parking; Open wine bar; After party with fabulous light fare by Chef Andrew of Catering Experience and Fine wines and beer by Chuck Fine Wines.
But, as they say, that's not all. Cleveland's own Amanda Powell will open the show with the music of Judy Garland accompanied by the Chagrin Falls Studio Orchestra and Swing Band. You will hear the songs that made Judy famous like "On the Atchison, Topeka & the Santa Fe", "Johnny One Note" and of course, "Over the Rainbow".
Tickets are $150 ($75 deductible) and may be purchased at www.cvlt.org or calling the box office at (440) 247-8955. For more information go to www.cvlt.org or www.TheCFSO.com websites. There is an optional patron party before the event hosted by the Chagrin Documentary film Festival for an additional $50 which includes open bar hors-d'oeuvres, priority seating for the show and a meet and greet with the artist and musical arranger.


Help at the push of a button! Perfect for those who live alone. Two-way voice communication included. Equipment options available.
The fall detection pendant will send an alarm whenever it detects a fall. There is also a panic button in case of a medical emergency.
The 24-hour Nurse Helpline puts you in contact with a registered nurse when you need it, as often as you need it.
Learn more about Medical Alert Monitoring and how it will help you.


text:
Kimito (Fins: Kemiö) is een voormalige gemeente in de Finse provincie West-Finland en in de Finse regio Varsinais-Suomi. De gemeente had een totale oppervlakte van 318 km² en telde 3327 inwoners in 2003.

In 2009 is de gemeente samen met de andere gemeenten Dragsfjärd en Västanfjärd gefuseerd en hebben de nieuwe gemeente Kimitoön gevormd.

Kimito was een tweetalige gemeente met Zweeds als meerderheidstaal (± 65%) en Fins als minderheidstaal.

Geboren in Kimito
 Amos Anderson (1878-1961), krantenmagnaat en kunstverzamelaar

Voormalige gemeente in Finland


text:
Oregon Books January 9, 2019 January 29, 2019
If, Then: The Road Not Taken
A debut novel takes on visions of what could have been, or could be
interview by Sheila G. Miller
In Kate Hope Day's new novel, If, Then, you can almost feel the gloom and fog of an Oregon mountain town pressing in on you. Put up your hood—the downpour is coming, and it's not just rain. Day's book takes us into the lives of a group of neighbors who live near the base of a dormant volcano known as Broken Mountain. Their lives get complicated when they begin seeing flashes of their lives, but different—a mom who didn't die of cancer, a different partner, a new pregnancy. Day sat down with 1859 to explain just what it is about Oregon that inspired this type of imaginative work.
How did you develop the idea for this first novel?
It came out of two big life changes—having my first child and moving to Oregon. The main emotional impulse behind the book was trying to understand the feeling when you have your first baby. Writing the book helped me think it through both in terms of time—the person you were before and the person you are after—and then in terms of the idea that there's just never enough of you. You want to be in two places at once. That's the central emotional impulse out of which the book grew. That's where it started for me, but as I got going with it, I felt it was tapping into something much more broad. Everyone can relate to that question of, what would my life be like if I'd taken a different job or married someone else? The other lives you might have had. It's a very human question.
And Oregon?
I'm from Pennsylvania, though my husband is from the Pacific Northwest. We moved here and I had never been here. I wrote the book basically in tandem with falling in love with this place. I have a kind of outsider's perspective on Oregon, but I can't imagine ever leaving. It's just a magical, weird, wild, beautiful place, and I think that's all in this book. There's a lot of mud, and fog. I think every regular thing I did, which didn't always feel regular to me because I was new to Oregon, made its way into the book—driving through the fog with a baby in the backseat, going on forest hikes with my kids, and learning about mushrooms, and lichen and things like that.
There are a lot of storylines to follow in this book, including more than one for several characters. How did you stay on top of them?
I had a lot of charts. I'm working on another book now and it's not nearly as chart-intense. Each character had their own sort of plot chart. At one point, I had a Google calendar for each of them because I was trying to match it up in terms of weather and climate and what would be typical for Oregon in October. I also would break the book out for each person, so I would read them on their own, and then I'd put them back together. This book took about five years to write, but the first three or four of those I wrote primarily during my kids' nap times. … It went considerably slower those first few years, and I'd never written a novel, so I was teaching myself how to do it. The next novel is almost done and it has definitely gone faster. It helps that both kids are in school. And I'm getting paid, so I have a workspace now and I can treat it more like a career.
Every Other Weekend by Zulema Renee Summerfield
Oregon Author: Joyce Cherry Cresswell
The Campout Cookbook
For the Love of Old Homes