Stability and proteolytic domains of Nef protein from human immunodeficiency virus (HIV) type 1.
Proteolytic experiments in conjunction with 1H-NMR spectroscopy show that the Nef (negative factor) protein from human immunodeficiency virus type 1 probably consists of two main domains, the N-terminal anchor domain at amino acid positions 2-65 and the C-terminal core domain at positions 66-206. The N-terminal domain is likely to be located at the surface of the protein, while the C-terminal domain has a compactly folded core and is stable in the absence of the anchor domain. It is conceivable that the core domain represents a functional domain of the Nef protein, activated after the removal of the membrane anchor by the human-immunodeficiency-virus protease or cellular proteases. Nef is stable at pH 5-12 and denatures at 317-322 K. The Nef protein remains in its native conformation in dimethyl-sulfoxide/water mixtures up to 35% (by vol.), and in acetonitrile/water up to 14% (by vol.). Nef refolds spontaneously after denaturation with urea or guanidinium hydrochloride. The 1H-NMR parameters and pKa values of five of the nine histidine residues and one of the seven tyrosine residues were determined and were found in four cases to be typical for residues which are not located in the interior of the protein.


using System;

namespace NBitcoin.Altcoins.HashX11.Crypto.SHA3
{
    internal class JH224 : JHBase
    {
        public JH224() :
            base(NBitcoin.Altcoins.HashX11.HashSize.HashSize224)
        {
        }
    }

    internal class JH256 : JHBase
    {
        public JH256() :
            base(NBitcoin.Altcoins.HashX11.HashSize.HashSize256)
        {
        }
    }

    internal class JH384 : JHBase
    {
        public JH384() :
            base(NBitcoin.Altcoins.HashX11.HashSize.HashSize384)
        {
        }
    }

    internal class JH512 : JHBase
    {
        public JH512() :
            base(NBitcoin.Altcoins.HashX11.HashSize.HashSize512)
        {
        }
    }

    internal abstract class JHBase : BlockHash, ICryptoNotBuildIn
    {
        #region Consts
        private static readonly ulong[] s_bitslices =
        {
            0x67F815DFA2DED572, 0x571523B70A15847B, 0xF6875A4D90D6AB81, 0x402BD1C3C54F9F4E,
            0x9CFA455CE03A98EA, 0x9A99B26699D2C503, 0x8A53BBF2B4960266, 0x31A2DB881A1456B5,
            0xDB0E199A5C5AA303, 0x1044C1870AB23F40, 0x1D959E848019051C, 0xDCCDE75EADEB336F,
            0x416BBF029213BA10, 0xD027BBF7156578DC, 0x5078AA3739812C0A, 0xD3910041D2BF1A3F,
            0x907ECCF60D5A2D42, 0xCE97C0929C9F62DD, 0xAC442BC70BA75C18, 0x23FCC663D665DFD1,
            0x1AB8E09E036C6E97, 0xA8EC6C447E450521, 0xFA618E5DBB03F1EE, 0x97818394B29796FD,
            0x2F3003DB37858E4A, 0x956A9FFB2D8D672A, 0x6C69B8F88173FE8A, 0x14427FC04672C78A,
            0xC45EC7BD8F15F4C5, 0x80BB118FA76F4475, 0xBC88E4AEB775DE52, 0xF4A3A6981E00B882,
            0x1563A3A9338FF48E, 0x89F9B7D524565FAA, 0xFDE05A7C20EDF1B6, 0x362C42065AE9CA36,
            0x3D98FE4E433529CE, 0xA74B9A7374F93A53, 0x86814E6F591FF5D0, 0x9F5AD8AF81AD9D0E,
            0x6A6234EE670605A7, 0x2717B96EBE280B8B, 0x3F1080C626077447, 0x7B487EC66F7EA0E0,
            0xC0A4F84AA50A550D, 0x9EF18E979FE7E391, 0xD48D605081727686, 0x62B0E5F3415A9E7E,
            0x7A205440EC1F9FFC, 0x84C9F4CE001AE4E3, 0xD895FA9DF594D74F, 0xA554C324117E2E55,
            0x286EFEBD2872DF5B, 0xB2C4A50FE27FF578, 0x2ED349EEEF7C8905, 0x7F5928EB85937E44,
            0x4A3124B337695F70, 0x65E4D61DF128865E, 0xE720B95104771BC7, 0x8A87D423E843FE74,
            0xF2947692A3E8297D, 0xC1D9309B097ACBDD, 0xE01BDC5BFB301B1D, 0xBF829CF24F4924DA,
            0xFFBF70B431BAE7A4, 0x48BCF8DE0544320D, 0x39D3BB5332FCAE3B, 0xA08B29E0C1C39F45,
            0x0F09AEF7FD05C9E5, 0x34F1904212347094, 0x95ED44E301B771A2, 0x4A982F4F368E3BE9,
            0x15F66CA0631D4088, 0xFFAF52874B44C147, 0x30C60AE2F14ABB7E, 0xE68C6ECCC5B67046,
            0x00CA4FBD56A4D5A4, 0xAE183EC84B849DDA, 0xADD1643045CE5773, 0x67255C1468CEA6E8,
            0x16E10ECBF28CDAA3, 0x9A99949A5806E933, 0x7B846FC220B2601F, 0x1885D1A07FACCED1,
            0xD319DD8DA15B5932, 0x46B4A5AAC01C9A50, 0xBA6B04E467633D9F, 0x7EEE560BAB19CAF6,
            0x742128A9EA79B11F, 0xEE51363B35F7BDE9, 0x76D350755AAC571D, 0x01707DA3FEC2463A,
            0x42D8A498AFC135F7, 0x79676B9E20ECED78, 0xA8DB3AEA15638341, 0x832C83324D3BC3FA,
            0xF347271C1F3B40A7, 0x9A762DB734F04059, 0xFD4F21D26C4E3EE7, 0xEF5957DC398DFDB8,
            0xDAEB492B490C9B8D, 0x0D70F36849D7A25B, 0x84558D7AD0AE3B7D, 0x658EF8E4F0E9A5F5,
            0x533B1036F4A2B8A0, 0x5AEC3E759E07A80C, 0x4F88E85692946891, 0x4CBCBAF8555CB05B,
            0x7B9487F3993BBBE3, 0x5D1C6B72D6F4DA75, 0x6DB334DC28ACAE64, 0x71DB28B850A5346C,
            0x2A518D10F2E261F8, 0xFC75DD593364DBE3, 0xA23FCE43F1BCAC1C, 0xB043E8023CD1BB67,
            0x75A12988CA5B0A33, 0x5C5316B44D19347F, 0x1E4D790EC3943B92, 0x3FAFEEB6D7757479,
            0x21391ABEF7D4A8EA, 0x5127234C097EF45C, 0xD23C32BA5324A326, 0xADD5A66D4A17A344,
            0x08C9F2AFA63E1DB5, 0x563C6B91983D5983, 0x4D608672A17CF84C, 0xF6C76E08CC3EE246,
            0x5E76BCB1B333982F, 0x2AE6C4EFA566D62B, 0x36D4C1BEE8B6F406, 0x6321EFBC1582EE74,
            0x69C953F40D4EC1FD, 0x26585806C45A7DA7, 0x16FAE0061614C17E, 0x3F9D63283DAF907E,
            0x0CD29B00E3F2C9D2, 0x300CD4B730CEAA5F, 0x9832E0F216512A74, 0x9AF8CEE3D830EB0D,
            0x9279F1B57B9EC54B, 0xD36886046EE651FF, 0x316796E6574D239B, 0x05750A17F3A6E6CC,
            0xCE6C3213D98176B1, 0x62A205F88452173C, 0x47154778B3CB2BF4, 0x486A9323825446FF,
            0x65655E4E0758DF38, 0x8E5086FC897CFCF2, 0x86CA0BD0442E7031, 0x4E477830A20940F0,
            0x8338F7D139EEA065, 0xBD3A2CE437E95EF7, 0x6FF8130126B29721, 0xE7DE9FEFD1ED44A3,
            0xD992257615DFA08B, 0xBE42DC12F6F7853C, 0x7EB027AB7CECA7D8, 0xDEA83EAADA7D8D53,
            0xD86902BD93CE25AA, 0xF908731AFD43F65A, 0xA5194A17DAEF5FC0, 0x6A21FD4C33664D97,
            0x701541DB3198B435, 0x9B54CDEDBB0F1EEA, 0x72409751A163D09A, 0xE26F4791BF9D75F6
        };

        private static readonly ulong[][] s_initial_states =
        {
            new ulong []
            {
                0xac989af962ddfe2d, 0xe734d619d6ac7cae, 0x161230bc051083a4, 0x941466c9c63860b8,
                0x6f7080259f89d966, 0xdc1a9b1d1ba39ece, 0x106e367b5f32e811, 0xc106fa027f8594f9,
                0xb340c8d85c1b4f1b, 0x9980736e7fa1f697, 0xd3a3eaada593dfdc, 0x689a53c9dee831a4,
                0xe4a186ec8aa9b422, 0xf06ce59c95ac74d5, 0xbf2babb5ea0d9615, 0x6eea64ddf0dc1196
            },
            new ulong []
            {
                0xebd3202c41a398eb, 0xc145b29c7bbecd92, 0xfac7d4609151931c, 0x038a507ed6820026,
                0x45b92677269e23a4, 0x77941ad4481afbe0, 0x7a176b0226abb5cd, 0xa82fff0f4224f056,
                0x754d2e7f8996a371, 0x62e27df70849141d, 0x948f2476f7957627, 0x6c29804757b6d587,
                0x6c0d8eac2d275e5c, 0x0f7a0557c6508451, 0xea12247067d3e47b, 0x69d71cd313abe389
            },
            new ulong []
            {
                0x8a3913d8c63b1e48, 0x9b87de4a895e3b6d, 0x2ead80d468eafa63, 0x67820f4821cb2c33,
                0x28b982904dc8ae98, 0x4942114130ea55d4, 0xec474892b255f536, 0xe13cf4ba930a25c7,
                0x4c45db278a7f9b56, 0x0eaf976349bdfc9e, 0xcd80aa267dc29f58, 0xda2eeb9d8c8bc080,
                0x3a37d5f8e881798a, 0x717ad1ddad6739f4, 0x94d375a4bdd3b4a9, 0x7f734298ba3f6c97
            },
            new ulong []
            {
                0x17aa003e964bd16f, 0x43d5157a052e6a63, 0x0bef970c8d5e228a, 0x61c3b3f2591234e9,
                0x1e806f53c1a01d89, 0x806d2bea6b05a92a, 0xa6ba7520dbcc8e58, 0xf73bf8ba763a0fa9,
                0x694ae34105e66901, 0x5ae66f2e8e8ab546, 0x243c84c1d0a74710, 0x99c15a2db1716e3b,
                0x56f8b19decf657cf, 0x56b116577c8806a7, 0xfb1785e6dffcc2e3, 0x4bdd8ccc78465a54
            }
        };
        #endregion

        protected readonly ulong[] m_state = new ulong[16];

        public JHBase(HashSize a_hash_size) :
            base((int)a_hash_size, 128, 64)
        {
            Initialize();
        }

        protected override void TransformBlock(byte[] a_data, int a_index)
        {
            ulong[] data = Converters.ConvertBytesToULongs(a_data, a_index, 64);

            const ulong c_2_1 = 0x5555555555555555;
            const ulong c_2_2 = 0xaaaaaaaaaaaaaaaa;
            const ulong c_4_1 = 0x3333333333333333;
            const ulong c_4_2 = 0xcccccccccccccccc;
            const ulong c_8_1 = 0x0f0f0f0f0f0f0f0f;
            const ulong c_8_2 = 0xf0f0f0f0f0f0f0f0;
            const ulong c_16_1 = 0x00ff00ff00ff00ff;
            const ulong c_16_2 = 0xff00ff00ff00ff00;
            const ulong c_32_1 = 0x0000ffff0000ffff;
            const ulong c_32_2 = 0xffff0000ffff0000;

            ulong m0 = m_state[0] ^ data[0];
            ulong m1 = m_state[1] ^ data[1];
            ulong m2 = m_state[2] ^ data[2];
            ulong m3 = m_state[3] ^ data[3];
            ulong m4 = m_state[4] ^ data[4];
            ulong m5 = m_state[5] ^ data[5];
            ulong m6 = m_state[6] ^ data[6];
            ulong m7 = m_state[7] ^ data[7];

            ulong m8 = m_state[8];
            ulong m9 = m_state[9];
            ulong m10 = m_state[10];
            ulong m11 = m_state[11];
            ulong m12 = m_state[12];
            ulong m13 = m_state[13];
            ulong m14 = m_state[14];
            ulong m15 = m_state[15];

            ulong t0;
            ulong t1;

            for (int r = 0; r < 42; r = r + 7)
            {
                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[r * 4];
                m2 ^= ~m10 & s_bitslices[r * 4 + 2];
                t0 = s_bitslices[r * 4] ^ (m0 & m4);
                t1 = s_bitslices[r * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m2 = ((m2 & c_2_1) << 1) | ((m2 & c_2_2) >> 1);
                m6 = ((m6 & c_2_1) << 1) | ((m6 & c_2_2) >> 1);
                m10 = ((m10 & c_2_1) << 1) | ((m10 & c_2_2) >> 1);
                m14 = ((m14 & c_2_1) << 1) | ((m14 & c_2_2) >> 1);

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[r * 4 + 1];
                m3 ^= ~m11 & s_bitslices[r * 4 + 1 + 2];
                t0 = s_bitslices[r * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[r * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                m3 = ((m3 & c_2_1) << 1) | ((m3 & c_2_2) >> 1);
                m7 = ((m7 & c_2_1) << 1) | ((m7 & c_2_2) >> 1);
                m11 = ((m11 & c_2_1) << 1) | ((m11 & c_2_2) >> 1);
                m15 = ((m15 & c_2_1) << 1) | ((m15 & c_2_2) >> 1);

                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[(r + 1) * 4];
                m2 ^= ~m10 & s_bitslices[(r + 1) * 4 + 2];
                t0 = s_bitslices[(r + 1) * 4] ^ (m0 & m4);
                t1 = s_bitslices[(r + 1) * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m2 = ((m2 & c_4_1) << 2) | ((m2 & c_4_2) >> 2);
                m6 = ((m6 & c_4_1) << 2) | ((m6 & c_4_2) >> 2);
                m10 = ((m10 & c_4_1) << 2) | ((m10 & c_4_2) >> 2);
                m14 = ((m14 & c_4_1) << 2) | ((m14 & c_4_2) >> 2);

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[(r + 1) * 4 + 1];
                m3 ^= ~m11 & s_bitslices[(r + 1) * 4 + 1 + 2];
                t0 = s_bitslices[(r + 1) * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[(r + 1) * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                m3 = ((m3 & c_4_1) << 2) | ((m3 & c_4_2) >> 2);
                m7 = ((m7 & c_4_1) << 2) | ((m7 & c_4_2) >> 2);
                m11 = ((m11 & c_4_1) << 2) | ((m11 & c_4_2) >> 2);
                m15 = ((m15 & c_4_1) << 2) | ((m15 & c_4_2) >> 2);

                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[(r + 2) * 4];
                m2 ^= ~m10 & s_bitslices[(r + 2) * 4 + 2];
                t0 = s_bitslices[(r + 2) * 4] ^ (m0 & m4);
                t1 = s_bitslices[(r + 2) * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m2 = ((m2 & c_8_1) << 4) | ((m2 & c_8_2) >> 4);
                m6 = ((m6 & c_8_1) << 4) | ((m6 & c_8_2) >> 4);
                m10 = ((m10 & c_8_1) << 4) | ((m10 & c_8_2) >> 4);
                m14 = ((m14 & c_8_1) << 4) | ((m14 & c_8_2) >> 4);

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[(r + 2) * 4 + 1];
                m3 ^= ~m11 & s_bitslices[(r + 2) * 4 + 1 + 2];
                t0 = s_bitslices[(r + 2) * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[(r + 2) * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                m3 = ((m3 & c_8_1) << 4) | ((m3 & c_8_2) >> 4);
                m7 = ((m7 & c_8_1) << 4) | ((m7 & c_8_2) >> 4);
                m11 = ((m11 & c_8_1) << 4) | ((m11 & c_8_2) >> 4);
                m15 = ((m15 & c_8_1) << 4) | ((m15 & c_8_2) >> 4);

                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[(r + 3) * 4];
                m2 ^= ~m10 & s_bitslices[(r + 3) * 4 + 2];
                t0 = s_bitslices[(r + 3) * 4] ^ (m0 & m4);
                t1 = s_bitslices[(r + 3) * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m2 = ((m2 & c_16_1) << 8) | ((m2 & c_16_2) >> 8);
                m6 = ((m6 & c_16_1) << 8) | ((m6 & c_16_2) >> 8);
                m10 = ((m10 & c_16_1) << 8) | ((m10 & c_16_2) >> 8);
                m14 = ((m14 & c_16_1) << 8) | ((m14 & c_16_2) >> 8);

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[(r + 3) * 4 + 1];
                m3 ^= ~m11 & s_bitslices[(r + 3) * 4 + 1 + 2];
                t0 = s_bitslices[(r + 3) * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[(r + 3) * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                m3 = ((m3 & c_16_1) << 8) | ((m3 & c_16_2) >> 8);
                m7 = ((m7 & c_16_1) << 8) | ((m7 & c_16_2) >> 8);
                m11 = ((m11 & c_16_1) << 8) | ((m11 & c_16_2) >> 8);
                m15 = ((m15 & c_16_1) << 8) | ((m15 & c_16_2) >> 8);

                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[(r + 4) * 4];
                m2 ^= ~m10 & s_bitslices[(r + 4) * 4 + 2];
                t0 = s_bitslices[(r + 4) * 4] ^ (m0 & m4);
                t1 = s_bitslices[(r + 4) * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m2 = ((m2 & c_32_1) << 16) | ((m2 & c_32_2) >> 16);
                m6 = ((m6 & c_32_1) << 16) | ((m6 & c_32_2) >> 16);
                m10 = ((m10 & c_32_1) << 16) | ((m10 & c_32_2) >> 16);
                m14 = ((m14 & c_32_1) << 16) | ((m14 & c_32_2) >> 16);

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[(r + 4) * 4 + 1];
                m3 ^= ~m11 & s_bitslices[(r + 4) * 4 + 1 + 2];
                t0 = s_bitslices[(r + 4) * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[(r + 4) * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                m3 = ((m3 & c_32_1) << 16) | ((m3 & c_32_2) >> 16);
                m7 = ((m7 & c_32_1) << 16) | ((m7 & c_32_2) >> 16);
                m11 = ((m11 & c_32_1) << 16) | ((m11 & c_32_2) >> 16);
                m15 = ((m15 & c_32_1) << 16) | ((m15 & c_32_2) >> 16);

                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[(r + 5) * 4];
                m2 ^= ~m10 & s_bitslices[(r + 5) * 4 + 2];
                t0 = s_bitslices[(r + 5) * 4] ^ (m0 & m4);
                t1 = s_bitslices[(r + 5) * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m2 = (m2 << 32) | (m2 >> 32);
                m6 = (m6 << 32) | (m6 >> 32);
                m10 = (m10 << 32) | (m10 >> 32);
                m14 = (m14 << 32) | (m14 >> 32);

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[(r + 5) * 4 + 1];
                m3 ^= ~m11 & s_bitslices[(r + 5) * 4 + 1 + 2];
                t0 = s_bitslices[(r + 5) * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[(r + 5) * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                m3 = (m3 << 32) | (m3 >> 32);
                m7 = (m7 << 32) | (m7 >> 32);
                m11 = (m11 << 32) | (m11 >> 32);
                m15 = (m15 << 32) | (m15 >> 32);

                m12 = ~m12;
                m14 = ~m14;
                m0 ^= ~m8 & s_bitslices[(r + 6) * 4];
                m2 ^= ~m10 & s_bitslices[(r + 6) * 4 + 2];
                t0 = s_bitslices[(r + 6) * 4] ^ (m0 & m4);
                t1 = s_bitslices[(r + 6) * 4 + 2] ^ (m2 & m6);
                m0 ^= m8 & m12;
                m2 ^= m10 & m14;
                m12 ^= ~m4 & m8;
                m14 ^= ~m6 & m10;
                m4 ^= m0 & m8;
                m6 ^= m2 & m10;
                m8 ^= m0 & ~m12;
                m10 ^= m2 & ~m14;
                m0 ^= m4 | m12;
                m2 ^= m6 | m14;
                m12 ^= m4 & m8;
                m14 ^= m6 & m10;
                m4 ^= t0 & m0;
                m6 ^= t1 & m2;
                m8 ^= t0;
                m10 ^= t1;

                m2 ^= m4;
                m6 ^= m8;
                m10 ^= m0 ^ m12;
                m14 ^= m0;
                m0 ^= m6;
                m4 ^= m10;
                m8 ^= m2 ^ m14;
                m12 ^= m2;

                m13 = ~m13;
                m15 = ~m15;
                m1 ^= ~m9 & s_bitslices[(r + 6) * 4 + 1];
                m3 ^= ~m11 & s_bitslices[(r + 6) * 4 + 1 + 2];
                t0 = s_bitslices[(r + 6) * 4 + 1] ^ (m1 & m5);
                t1 = s_bitslices[(r + 6) * 4 + 1 + 2] ^ (m3 & m7);
                m1 ^= m9 & m13;
                m3 ^= m11 & m15;
                m13 ^= ~m5 & m9;
                m15 ^= ~m7 & m11;
                m5 ^= m1 & m9;
                m7 ^= m3 & m11;
                m9 ^= m1 & ~m13;
                m11 ^= m3 & ~m15;
                m1 ^= m5 | m13;
                m3 ^= m7 | m15;
                m13 ^= m5 & m9;
                m15 ^= m7 & m11;
                m5 ^= t0 & m1;
                m7 ^= t1 & m3;
                m9 ^= t0;
                m11 ^= t1;

                m3 ^= m5;
                m7 ^= m9;
                m11 ^= m1 ^ m13;
                m15 ^= m1;
                m1 ^= m7;
                m5 ^= m11;
                m9 ^= m3 ^ m15;
                m13 ^= m3;

                t0 = m2;
                m2 = m3;
                m3 = t0;
                t0 = m6;
                m6 = m7;
                m7 = t0;
                t0 = m10;
                m10 = m11;
                m11 = t0;
                t0 = m14;
                m14 = m15;
                m15 = t0;
            }

            m_state[0] = m0;
            m_state[1] = m1;
            m_state[2] = m2;
            m_state[3] = m3;
            m_state[4] = m4;
            m_state[5] = m5;
            m_state[6] = m6;
            m_state[7] = m7;

            m_state[8] = m8 ^ data[0];
            m_state[9] = m9 ^ data[1];
            m_state[10] = m10 ^ data[2];
            m_state[11] = m11 ^ data[3];
            m_state[12] = m12 ^ data[4];
            m_state[13] = m13 ^ data[5];
            m_state[14] = m14 ^ data[6];
            m_state[15] = m15 ^ data[7];
        }

        protected override void Finish()
        {
            ulong bits = m_processed_bytes * 8;

            int padindex = 56;

            if (m_processed_bytes % 64 != 0)
                padindex += m_buffer.Length - m_buffer.Pos;

            byte[] pad = new byte[padindex + 8];

            pad[0] = 0x80;

            Converters.ConvertULongToBytesSwapOrder(bits, pad, padindex);
            padindex += 8;

            TransformBytes(pad, 0, padindex);
        }

        protected override byte[] GetResult()
        {
            return Converters.ConvertULongsToBytes(m_state, 8, 8).SubArray(64 - HashSize, HashSize);
        }

        public override void Initialize()
        {
            switch (HashSize)
            {
                case 28:
                    Array.Copy(s_initial_states[0], m_state, m_state.Length);
                    break;
                case 32:
                    Array.Copy(s_initial_states[1], m_state, m_state.Length);
                    break;
                case 48:
                    Array.Copy(s_initial_states[2], m_state, m_state.Length);
                    break;
                case 64:
                    Array.Copy(s_initial_states[3], m_state, m_state.Length);
                    break;
            }

            base.Initialize();
        }
    }
}


Recognition of age-damaged (R,S)-adenosyl-L-methionine by two methyltransferases in the yeast Saccharomyces cerevisiae.
The biological methyl donor S-adenosylmethionine (AdoMet) can exist in two diastereoisomeric states with respect to its sulfonium ion. The S configuration, (S,S)-AdoMet, is the only form that is produced enzymatically as well as the only form used in almost all biological methylation reactions. Under physiological conditions, however, the sulfonium ion can spontaneously racemize to the R form, producing (R,S)-AdoMet. As of yet, (R,S)-AdoMet has no known physiological function and may inhibit cellular reactions. In this study, we found two Saccharomyces cerevisiae enzymes that are capable of recognizing (R,S)-AdoMet and using it to methylate homocysteine to form methionine. These enzymes are the products of the SAM4 and MHT1 genes, identified previously as homocysteine methyltransferases dependent upon AdoMet and S-methylmethionine, respectively. We found here that Sam4 recognizes both (S,S)- and (R,S)-AdoMet, but that its activity is much higher with the R,S form. Mht1 reacts with only the R,S form of AdoMet, whereas no activity is seen with the S,S form. R,S-Specific homocysteine methyltransferase activity is also shown here to occur in extracts of Arabidopsis thaliana, Drosophila melanogaster, and Caenorhabditis elegans, but has not been detected in several tissue extracts of Mus musculus. Such activity may function to prevent the accumulation of (R,S)-AdoMet in these organisms.


Developing the world's first universal Internet radio platform

Torian Wireless, the Australian developer of the world's first universal Internet radio platform, iRoamer, has agreements with manufacturers that will see the first commercial batch of products with the iRoamer technology launched next month.

Torian Wireless developed the iRoamer platform to give wireless Internet radio capabilities to almost any consumer electronic device, such as portable media players, Hi-Fi systems, set-top boxes, IP-TV units, car radio products, mobile and VoIP telephones.

Providing the interface between the iRoamer platform and the user is miRoamer, a customisable Internet media aggregation portal that gives users access to tens of thousands of Internet radio stations all over the world.

Torian provides a software suite which manufacturers can embed into their products, allowing access to the miRoamer.com back-end infrastructure.

Each device is registered with miRoamer, allowing users to listen to live radio in real time from anywhere at any time, manage content through folders, and share content with miRoamer "buddies".

Torian Wireless CEO and iRoamer developer George Parthimos, said the driving force behind the technology was a realisation that millions of users worldwide were streaming radio stations online.
"In the USA alone, 33 million people listen to iRadio every week (up from 19 million in 2005). Most of these users are tied to their desktop computer, and are seeking an alternative method for accessing the vast amounts of content available," Parthimos said.

"miRoamer.com is a free service. Users simply need to register an account to use the service on their desktop. The service is also free to purchasers of miRoamer-enabled devices, who can configure their device using the online portal."

miRoamer isn't just targeted at end users, with corporate content available via a user-pays model. Users can also subscribe to specific content, such as the Bloomberg stock market summary, as well as tutorials, eBooks and other podcasts.

The company is also working on a car radio service expected to be launched as early as 2009 in "several global markets across multiple continents" according to Parthimos, who believes the impact of Internet radio will be similar to the introduction of the FM band.

"We believe that the traditional radio model will not necessarily change with the growth of Internet radio take-up through connected devices. In fact, the compelling reason for users listening to radio remains 'programming'," Parthimos said.

"As with the launch of FM in the 1980's in Australia, AM stations retained their place in the radio landscape due to their programming. Advertising will support iRadio content. The model is being defined now, and miRoamer is at the forefront of working with several global advertising and content companies to build an appropriate advertising and delivery model.

Parthimos cites the growth in wireless broadband as a key driver of connected devices, and expects user's desires for compelling Internet content on those devices to drive Internet radio's popularity.

However, on the local front, Parthimos believes that limited availability of suitable products in retail channels compared to countries like the USA, UK and Germany, and expensive and restrictive monthly broadband download fees could stifle the popularity of iRadio compared to the rest of the world.

But the iRoamer platform's popularity will significantly increase once manufacturers begin pushing out devices.

"There are several license and distribution agreements in place with manufacturers in China, Singapore and USA, and the first commercial batch of miRoamer-enabled products is due to begin shipping from July/August."

The screen was particularly good. It is bright and visible from most angles, however heat is an issue, particularly around the Windows button on the front, and on the back where the battery housing is located.

My first impression after unboxing the Q702 is that it is a nice looking unit. Styling is somewhat minimalist but very effective. The tablet part, once detached, has a nice weight, and no buttons or switches are located in awkward or intrusive positions.

Reproduction in whole or in part in any form or medium without express written permission of IDG Communications is prohibited. Copyright 2013 IDG Communications.
ABN 14 001 592 650. All rights reserved.

Contact Us

With over 25 years of brand awareness and credibility, Good Gear Guide (formerly PC World Australia), consistently delivers editorial excellence through award-winning content and trusted product reviews.


An appeals court keeps religious freedom within decent bounds

On Wednesday, a federal appeals court said that you can’t fire a transgender person just because you think gender is a gift from God that can’t be changed. The case, EEOC v. R.G. & G.R. Harris Funeral Homes, was brought by Aimee Stephens, a funeral director in Michigan who was fired when she told her boss, Thomas Rost, that she had a gender identity disorder and planned to transition from male to female.

Reversing a lower court decision, the Sixth Circuit Court of Appeals ruled that 1) the ban on sex discrimination in Title VII of the 1964 Civil Rights Act applies to transgender identity; and 2) the firing was not protected by the Religious Freedom Restoration Act (RFRA).

Rost claimed that he would be “violating God’s commands” if he permitted a male funeral director “to wear the uniform for female directors while at work.” I guess the applicable command here is Deuteronomy 22:5, which reads (in the King James Version): “The woman shall not wear that which pertaineth unto a man, neither shall a man put on a woman’s garment: for all that do so are abomination unto the LORD thy God.”

Of course, that begs the gender identity question: What, exactly, is “woman” and “man”?

On that, Rost’s asserted his sincere belief that “the Bible teaches that a person’s sex is an immutable God-given gift,” and that to let Stephens transition in the job would make him complicit “in supporting the idea that sex is a changeable social construct.”

But in America it is not enough to possess a sincere religious belief. You’ve got to show that your free exercise is substantially burdened by having to do something that in your view violates that belief. In the present case, the court said it wasn’t:

Rost may sincerely believe that, by retaining Stephens as an employee, he is supporting and endorsing Stephens’s views regarding the mutability of sex. But as a matter of law, bare compliance with Title VII—without actually assisting or facilitating Stephens’s transition efforts—does not amount to an endorsement of Stephens’s views…At bottom, the fact that Rost sincerely believes that he is being compelled to make such an endorsement does not make it so.

Let’s be clear. The societal issue here is not with the sincere belief of individuals in commands from the Hebrew Bible like Deuteronomy 22:5. If so, we’d be seeing people being fired for committing adultery, violating the Sabbath, dishonoring their parents, wearing garments that mix wool and linen, etc. etc. etc. The issue is the extent to which those opposed to same-sex marriage and transgender identity get to carve out socio-economic space for the old norms they prefer.

But it’s possible to hold to those old norms without having devout small business owners turn into litigious culture warriors. Here, for instance, is what Andrew T. Walker, Director of Policy Studies for the Ethics and Religious Liberty Commission of the Southern Baptist Convention, has to say about the transgender debate.

Holding a biblical conviction in this debate means that individuals will find themselves in disagreements with friends, families, and co-workers—and that, however we express ourselves, we will be accused of being haters, bigots, and worse.

At a time like this, Christians need the courage to defend a true vision for human flourishing based on the biblical understanding of being made in His image. We must avoid trite explanations or knee-jerk reactions, but we must continue to say that, since God made us, he gets the ultimate say in who we are. We must put steel in our spines.

But all the conviction in the world won’t matter if we act or speak without compassion. Jesus did not aim to win debates. He sought to love people. So must we as his followers. As we ground our convictions in God’s unchanging, perfect, Word, we must speak with compassion in our hearts.

As I understand this injunction, Thomas Rost should have had the courage to tell Aimee Stephens that he believes gender is God’s immutable gift. And he should have had the compassion to keep her on the job, according to the dictates of the conscience that is hers.

This content is not available for republication.

RNS columns are direct-published opinion pieces. They are not always edited and reflect the views only of the author.


Q:

Controller actions for home, about and contact pages

I've just started a project and created a pages_controller and within the controller I have this:
class PagesController < ApplicationController

def home

end

end

these are my routes:
  devise_for :users
  root to: "pages#home"

I created the pages controller thinking I can use it to have a home page, about page & contact page. From my limited experience, it seems that your actions within your controllers should stick to the new,create,destroy,delete,show,index,edit and update
Is it bad to name an action Home, contact or about like I've done above? What do you usually do?

A:

There is nothing wrong with not having 100% RESTful routes in a Rails application. Particularly for your exact use case, which is to collect a handful of "static" pages. You're absolutely on the right track. The only thing I would consider changing would be to break out the contact page to its own controller (ContactPageSubmissions, perhaps), if it has a form on it - if it is just contact information, I would leave that where it is, too.


Subhashni Giridhar

Subhashni Giridhar (born 27 April 1965) is an Indian classical dancer of Bharatanatyam and a Chartered Accountant.

Early life and background
Subhashni Giridhar had the passion for dance since childhood and had trained in Thanjavur style of Bharata Natyam from the well known Gurus -  ‘Kalaimamani’ late Guru A.T Govindaraj Pillai and later on from ‘Kalaimamani’ late Guru T.K. Mahalingam Pillai and Guru Vasant kumar of renowned Sri Rajarajeswari Bharatha Natya Kala Mandir, Matunga. Learning from the age of 8, she gave her first stage performance – ‘Arangetram’ on 26 January 1990.

Dance career
After her ‘Arangetram’ in 1990, she has been giving several solo performance.
Being a national level danseuse, her specialization is solo recitals.
She has been giving solo performances since 1990 and has performed in several major sabhas / organizations such as Sri Shanmukhananda Sabha in Mumbai (1995) and New Delhi (2016), Ministry of Culture (India), Mulund Fine Arts Society, twice in NCPA in Little theatre and Godrej Dance Academy, four in ISKCON – monthly festival and Janmashtami Festival, Mulund Fine Arts Society, Cultural Festivals organized by Governments of Maharashtra, Tamil Nadu and Andhra Pradesh, ‘Vividha Kala Mahotsav’ organized  by Department of Cultural Affairs, Govt of Maharashtra, ‘Pongal festival’ organized by Govt of Tamil Nadu at Taj Mahal Palace & Tower, and Centaur Hotel, festival under the aegis of Department of Tourism, Govt of Andhra Pradesh at Shilparamam, Regional conference of ICSI, SICA at Ravindra Bharathi, Hyderabad, dance festival of Kalasagaram, Secunderabad and Bombay Andhra Maha Sabha, Mumbai. In the year 2014, Subhashni completed 25 years as a dance exponent. She performed at the Potti Sreeramulu Telugu University to mark this occasion.

She also has set up a BharataNatyam Academy by the name - "Suguna Nrityalaya" in the memory of her late sister Smt Suguna, who mentored her to pursue BharataNatyam in the first place.
The money from this Academy would be forming the corpus of a Trust. The Trust money would be for imparting education to the underprivileged.

Academic career
She is a post graduate in commerce from R.A.Podar College of Commerce, and also a Chartered Accountant. She became a FCA – fellow member of Institute of Chartered Accountants of India from 2003. In 2004, she acquired a post qualification degree DISA – Diploma in Information and Systems Audit from the Institute of Chartered Accountants of India.
She has been conferred the title of ‘SHRINGAR MANI’ and adjudged as best dancer all over India, by SUR SINGAR SAMSAD.
She has been pursuing her academic career with equal dedication and is a practising Chartered Accountant in Mumbai.

Choreographies
Subhashni has choreographed many of her Dance Recitals
 She choreographed special dance theme "Shri Krishna Kaarunya" and performed it at Sri Janmashtami Festival at ISKCON, Kharghar, Navi Mumbai and "Shri Krishna Vaibhav" performed at ISKCON, Juhu, Mumbai.
 Her recent concept which she gave shape to was ‘Navarasas in the life of a student till he / she becomes a  Professional / CA’. The concept, choreography and the performance was appreciated by the audience.
"First time in the history of Institute of Chartered Accountants of India, CA motto and history of CA emblem was shown by me in Abhinaya and Mudras with English subtitles, on CA Foundation day on 1 July 2011."

Philosophy
The reason God made her to pursue her career and her passion (Bharathanatyam), both with the same zeal and enthusiasm was because God had chosen CA to fulfill the financial needs and Dance for her inner Bliss, she says.
The Supreme satisfaction of the inner self while performing dance is unexplainable.
The main reason that She has never made Dance a source of income after being a performer for more than two decades is that, she has always considered Bharathnatyam Dance as eternal and spiritual. When one could get so much of immense self-satisfaction and pure happiness then what else one could ask for from Dance? Materialistic thing like money?
She has dedicated herself to Bharathanatyam. She believes in continuing her art all through her life and train as many dancers as possible who will carry on this legacy in to the future generations, without making it a commercial proposition. She says "If Every  dance Performance  of mine can motivate  at least one person to pursue this rich Indian art of Bharata Natyam  that would be my humble contribution to the field of art."

References
Official Website
The Hindu Friday Review
The Hindu Friday Review
The Hindu Friday Review
The Hindu Friday Review
The Hindu Friday Review
Times Of India Article
Times Of India Article
Times Of India Article
Times Of India Article
Article in Hindustan Times
Westside Plus, Times Of India Article
Article in Mumbai Mirror
The Hindu Friday Review
Review in Hans India
Review in Hans India
Review in Hans India
Review in Telangana Today

Category:1965 births
Category:Living people
Category:Bharatanatyam exponents
Category:Indian female classical dancers
Category:Performers of Indian classical dance
Category:Dancers from Tamil Nadu
Category:Artists from Chennai
Category:Women artists from Tamil Nadu
Category:20th-century Indian dancers
Category:20th-century Indian women artists


1. Field of the Invention
This invention relates to identification cards of the type used as credit cards, bank ATM cards, or for other applications requiring user identification, and more particularly to a card having a special code arrangement which requires an adjustment of the card by one familiar with the code before the card will identify the authorized card holder.
2. Description of Background Art
A background art search directed to the subject matter of this application conducted in the U.S. Pat. and Trademark Office disclosed the following U.S. Letters Patent: U.S. Pat. Nos. 3,399,473; 3,705,294; 4,801,790; and 4,899,038.
None of the patents uncovered in the search discloses an identification card having a primary magnetic code portion located on a non-movable part of the card and a secondary magnetic code portion located on a movable part of the card which card requires action by one familiar with the code arrangement to move one part of the card relative to the other to make the two separate code portions function in combination with each other to identify the authorized holder of the card.


646 F.Supp. 1077 (1986)
NEW CONCEPT INDUSTRIES, INC., a corporation, Plaintiff,
v.
Comer F. GREEN, Defendant.
Civ. A. No. 86-H-696-N.
United States District Court, M.D. Alabama, N.D.
November 3, 1986.
Hill, Hill, Carter, Franco, Cole & Black, Robert W. Bradford, Jr., Montgomery, Ala., for plaintiff.
Lynn W. Jinks, III, Union Springs, Ala., Melton & Espy, Michael S. Jackson, Montgomery, Ala., for defendant.

MEMORANDUM OPINION
HOBBS, Chief Judge.
This cause is now before the Court on defendant's motion for summary judgment, filed August 13, 1986. The Court is of the opinion that this motion should be denied.

FACTS
Plaintiff, New Concept Industries, Inc., (New Concept) is a Delaware corporation with its principal place of business in Aberdeen, Mississippi. On October 9, 1985, New Concept negotiated a contract with defendant, Comer F. Green, (Green) in Aberdeen, Mississippi for the construction of pre-fab modular motel units. New Concept manufactured these units in Mississippi and installed them in Union Springs, Alabama. During the negotiations, Green had assured New Concept that he would take "all necessary steps to see that New Concept complied with Alabama laws." (Affidavit of Sara Bowen) Furthermore, the one-page contract clearly stated that defendant *1078 would "be responsible for securing all permits necessary for the construction of this building in accordance with all city and state requirements...."
During the installation of the pre-fab units in Union Springs, Green was dissatisfied with the construction materials and workmanship. He withheld payment. Plaintiff filed a lien on the Union Springs property and sued for breach of contract. Defendant counterclaimed for breach of contract and fraud. Defendant has moved for summary judgment on plaintiff's claim on the ground that plaintiff is a foreign corporation not qualified to do business in this state under the provisions of Ala.Code § 10-2A-247 (1980). This Court finds that New Concept is a foreign corporation not qualified to do business in the state, but for equitable reasons New Concept is not barred from enforcing the contract.

Legal Consideration
Foreign corporations qualify to do business by filing an application with the Secretary of State, Ala.Code § 10-2A-243 (1980). Alabama law provides that a foreign corporation not qualified to do business in this state may not enforce its contracts but can have its contracts enforced against it, Ala. Code § 10-2A-247(a) (1980). As a practical matter, this statute allows an Alabama corporation to enforce its contracts against a foreign corporation, but the foreign corporation may not counterclaim on that same contract, unless it has qualified to do business in Alabama, see Sanjay, Inc. v. Duncan Construction Co., Inc., 445 So.2d 876 (Ala.1983).
Courts have recognized the harshness of this rule and its potential for injustice. The Eleventh Circuit has characterized this statute as penal in nature and because it is in derogation of common law the rule must be strictly construed, see Aim Leasing Corp. v. Helicopter Medical Evacuation, Inc., 687 F.2d 354 (11th Cir.1982); Hughes Associates, Inc. v. Printed Circuit Corp., 631 F.Supp. 851 (N.D.Ala.1986). Alabama courts and legal commentators have criticized this rule for its harshness. See Sanjay, supra, at 881 (Torbert, C.J., dissenting). Note, Sanctions For Failure to Comply with Corporate Qualification Statutes: An Evaluation, 63 Colum.L. Rev. 117 (1963); Note, Sanjay, Inc. v. Duncan Construction Co: Alabama Refuses Equity's Knock and Closes Another Door on Unqualified Foreign Corporations, 36 Ala.L.Rev. 715 (1985). The type of punitive sanctions imposed for violation of the Alabama qualification statute does not enjoy wide acceptance. As Chief Justice Torbert explained in his Sanjay dissent: "Alabama is one of four states which permits a party to elect to hold void a contract with a non-qualified foreign corporation." Sanjay, supra, at 881 (Torbert, C.J., dissenting).
This rule is limited to businesses conducting intrastate activities, see In re Delta Molded Products, 416 F.Supp. 938 (N.D.Ala.1976), aff'd, 571 F.2d 957 (5th Cir. 1978). Businesses conducting interstate activities are not covered by this rule. New Concept argues that it was engaged in essentially interstate activities. These pre-fab units were manufactured in Mississippi with Mississippi employees. New Concept was only in Alabama for a relatively short time to connect the units to one another in Union Springs, Alabama. New Concept offers Delta Molded Products, supra, as support for its position. The Court rejects this argument.
The rule created by Alabama qualification statutes comprises "substantive" state law; therefore, this Court must apply this rule in accordance with state court decisions, see Aim Leasing Corp., supra. New Concept argues that Delta Molded Products, supra, establishes criteria which would compel this Court to characterize this construction project as interstate activity. However, Delta Molded Products involved the installation and operation of complex machinery; this case involves construction. Alabama decisions are clear that construction is intrastate in character, whereas the installation of complex machinery is interstate activity, see Wallace Construction Co. v. Industrial Boiler Co., *1079 470 So.2d 1151 (Ala.1985). The Alabama Supreme Court has specifically held that the implacement of prefabricated units constructed outside the state is intrastate activity which is covered by the qualification rule, see Sanjay, 445 So.2d at 880. This Court is bound by Alabama decisions which construe Alabama statutes; therefore, New Concept's activities are covered by this rule.
Alabama's qualification statute also expressly includes an equitable exception to this harsh rule. On the facts of this case New Concept falls within this equitable exception. The statute specifically states: "Nothing in this section shall abrogate the equitable rule that he who seeks equity must do equity...." Ala.Code § 10-2A-247(a) (1980). In this case, Mr. Green assured New Concept that he would take "all necessary steps to see that New Concept complied with Alabama laws." Moreover, the one-page contract provided that Mr. Green would "be responsible for securing all permits necessary for the construction of this building in accordance with all city and state requirements...." A reasonable construction of the parties' contract obliges the defendant to file the necessary application to qualify the plaintiff to do business in Alabama. His failure to submit this application should not be the basis for allowing defendant to bar plaintiff's recourse to the courts of this state.
Equitable estoppel promotes justice by preventing a party from asserting rights under a rule of law when the party's own conduct renders assertion of such rights contrary to equity and good conscience, Mazer v. Jackson Insurance Co., 340 So.2d 770 (Ala.1976). The Alabama Supreme Court has denied enforcement of the qualification rule when equity demanded such a result, Day v. Ray E. Friedman & Co., 395 So.2d 54 (Ala.1981). The basic elements of equitable estoppel are:
1) the actor, who usually must have knowledge of the facts, communicates something in a misleading way, either by words or conduct, or silence; 2) another relies upon that communication; and 3) the other party would be harmed materially if the actor is permitted to assert any claim inconsistent with his earlier conduct.
Baker v. Hospital Corp. of America, 432 So.2d 1281, 1285 (Ala.1983). These elements are satisfied in this case. Green cannot cause New Concept to be in violation of the qualification statute and then claim the statute's protection.
Defendant argues that the Alabama Supreme Court has refused to apply the equitable exception on facts similar to those in the instant case. The Alabama Supreme Court in Sanjay would not apply the equity exception even though the party seeking the protection of the statute had offered to "make it `legal' to do the construction work in Alabama." Sanjay, 445 So.2d at 883. The case at bar is distinguishable because of the specificity of the oral representation and the presence of the provision in the one-page contract. If such an agreement of a party is insufficient to bring into operation the equitable exception created by statute, then this Court fails to understand how it would ever operate.

CONCLUSION
New Concept is a foreign corporation not qualified to do business in this state and New Concept's intrastate activities are covered by the Alabama qualification statute. Nevertheless, the statutory equitable exception operates in this case to allow plaintiff to proceed with this action. Therefore, defendant's motion for summary judgment is due to be denied. A separate judgment will be entered in accordance with this memorandum opinion.


Joel 2:28
And it shall come to pass afterward, that I will pour out my spirit upon all flesh; and your sons and your daughters shall prophesy, your old men shall dream dreams, your young men shall see visions...

Pages

Sunday, August 7, 2011

We arrived back to Nicaragua in May with a lot on our minds. We spent a majority of the plane ride home, mentally going through our house, pricing and figuring out what we were going to sell. Then we began to talk about how we were going to break the news to our friends, both Nicaraguan and missionary friends that we have become so close to. Oh, how we didn't want to have to do it. If we thought there would be an easier way, we would have found it, trust me! We knew it would be so hard.

When we arrived, we were so glad to be back, but sad because we knew it was for such a short time and we were going to have to say goodbye.

Roger had a conference in Puerto Cabezas, in the northeast, less than a week after we arrived, we also had to get school supplies out to the schools and communities, and we had a clinic in just days. We had a lot going on right away, but also had the impending move in the forefront of our minds. We realized we couldn't think about leaving yet and had to focus. Once we finished those tasks we'd hit it with full force, and did we ever.

I was feeling the weight of all the logistics...selling, packing, leaving. It's always a balancing act, as people leave, to have just enough stuff left behind so you can live but not too much where you are having people in your home up to the last day picking things up; and packing all at the same time. We were talking with some friends of ours one night via Skype (pretty sure God inspired the invention of Skype...amazing) and she gave us a great idea. Sell, pack and get out of your house early, rent a furnished apt. so that you can have time to spend with the people you want to spend your last weeks with, friends. I literally felt the weight of the world lift from my shoulders. It was such a freeing moment. We immediately called some friends of ours, missionaries, who happen to have a guest house. God answered our prayers, they had the house free for nearly 3 weeks so that we could use it.

We began to get serious about this purging thing. Everything must go!!! We could only move back with suitcases and totes. So if it wasn't really important or too big it was sold or given away. Now, don't get me wrong, there were things that were important that we parted with, but it was tough to make the cut :) We were also blessed by some other missionary friends who had teams that were coming down that offered to take some totes back for us; who also happened to live close to where we were moving to...God again!!! I really wasn't for sure how we were going to scale everything down from 9 years of living, and accumulating, to 8 suitcases. God must have known we needed the help. And the kids were grateful too. There were just things that were hard to part with for them, and as a parent, it's hard to ask them to do such a hard thing sometimes. They were already giving up and leaving everything they had ever known.

Well, within a few weeks we had everything sold. It was a very liberating, but sobering realization. This move was really going to happen. I was trying so hard to stay focused on the logistics that when we finally had a chance to catch our breath it hit me hard. We were really saying goodbye to our lives of 9 years. We were really leaving the work in the hands of our new directors there. We were really saying goodbye to so many friends that had become more like family. We were really leaving it all behind.

We spent the last few weeks working with our new directors, Michelle and Eliseo, making sure they were ready to take over the Nicaragua projects and work. We also took every opportunity to spend time with our friends there, both missionary and Nicaraguan friends. We tried to enjoy the last days to the fullest. The goodbyes were, by far, the hardest. Not knowing when the next time is that we would see them. We are still planning on visiting Nicaragua, but after spending year after year with these families, birthday parties, weddings, babies, it just doesn't seem the same to maybe get to see them once a year. It's still hard to think about it. We miss them all so much.

But God had asked us to do something for Him. And we knew it. He had asked us to leave our country behind. To follow Him and His leading. To be obedient in the midst of difficulty, when it wasn't what we wanted. Not our will but His. He had been faithful to us during this whole process. He worked things out before we knew we needed it. Our truck sold in days, we had a house to live in, we were able to bring more suitcases back with us, and just a few weeks before we left Nicaragua we had already found out we had an apt. that would be open for us to rent within 2 days of landing in the States. The hand of God had been over us and seen throughout this whole time. I know it would have been so much harder had we not known without a doubt that this is what God was calling us to do. His peace, in the midst of sadness, reigned in our hearts and minds. Don't get me wrong, there are still days that are hard, but I know God will see us through.

July 10th we landed in the States. Two months and 5 days after we returned to Nicaragua. What a crazy two months they were. Without God, I don't know how it could have come together....but I wouldn't have wanted to go through it without Him.

Saturday, August 6, 2011

As I have laid in bed many a night knowing I need to update the blog, I think, "Where does one even begin". I realize the last post was in March and look back on that date and realize I never knew what was coming.

We arrived in the States, excited, and ready to travel. To see our friends and family. Excited to share all the things that God is doing and extend our gratitude for all those who have made it possible.

Little did we know what God had in store for us.

The trip progressed as normal. We traveled from place to place, realizing that we wished we could stay longer everywhere we went, and realized that wasn't possible. Enjoyed the fellowship, the late nights, card games, and visits. But, there was an underlying theme going on that not many saw.

In Branson, our first stop, the conference was amazing. The Lord spoke and we enjoyed the fellowship as we always do. Then, the Lord said something about coming back to the States. WHAT!?!?!! We didn't see that coming. We weren't even sure if that was the Lord. Can't be. So we just kept that in our hearts, the back burner, and continued our trip. It seemed as though someone would say something about coming back to the States or taking a break, nearly everywhere we went. We both were simmering on that internally. Not even discussing it amongst ourselves. Then one night came where we were receiving prayer and, again, it came up. OK, now this is in a group setting. Can't ignore it. So we went there a bit. Discussed. Cried. Thought.

The days following Roger and I (Rhonda) were in some serious meetings with the Lord and each other. "Was this really His will?" "We've always said we'd stay for the people of Nicaragua." "We love the people." "Our hearts are with them." "They are going through, and are getting ready to go through, such a hard time." "Could this really be?" We cried more, talked more, thought more, prayed more. Later in April we came to an agreement, the two of us, that we felt peace about returning to the States. (Even as I write this I can't believe we did it.)

We kept it between us, for the most part, until early May, when we told family. It was one of the hardest decisions I have been a part of, to date. It was hard for all of us. The kids have never lived in the States. It was a totally new thing to them. They weren't returning to a life they once knew. And we, Roger and I, weren't returning as the people we once were. We've been changed and molded by the time we've been out of the States, 9 years, and the people we have met and the God that has seen us through.

The Euceda Family

We have been blessed to live in other countries and to minister to those whom God has called us to. And we've had the joy of doing it together, as a FAMILY!! Continuing to walk in obedience to God, wherever and whatever He wants us and calls us.


THE HAGUE, Netherlands -- Japan's annual whale hunt is a commercial slaughter of marine mammals dressed up as science, Australian lawyers argued Wednesday as they urged the United Nations' highest court to ban the hunt in the waters around Antarctica.Australia's case at the International Court of Justice, supported by New Zealand, is the latest step in years of attempts by governments and environmental groups to halt the Japanese whaling fleet's annual trips to harpoon minke and fin whales for what Tokyo argues is scientific research allowed under international law.Australia calls the research claim a front for a commercial hunt that puts whale meat, considered a delicacy in Japan, on plates across the country. Commercial whaling was halted by a 1986 moratorium."Japan seeks to cloak its ongoing commercial whaling in the lab coat of science," Australia's agent to the court, Bill Campbell told the 16-judge panel in the wood-panelled Great Hall of Justice in The Hague."You don't kill 935 whales in a year to conduct scientific research. You don't even need to kill one whale to conduct scientific research," Campbell said.Japan insists its hunt is legal under a 1946 convention regulating whaling.The case in The Hague covers Japan's hunt in the Southern Ocean around Antarctica, but Japan also hunts in the northwestern Pacific."Japan's research programs have been legally conducted for the purposes of scientific research, in accordance with the International Convention for the Regulation of Whaling," Japan's Deputy Minister for Foreign Affairs Koji Tsuruoka said outside the courtroom. "Australia's claim is invalid. Japan's research whaling has been conducted for scientific research in accordance with international law."But Australia argued that the scientific whaling program, under which thousands of whales have been killed in factory ships plying Antarctic waters, was set up simply to sidestep the 1986 moratorium on commercial whaling."No other nation, before or since, has found the need to engage in lethal scientific research on anything like this scale," Australian Solicitor -General Justin Gleeson told the judges.Japan's government claims the research is needed to provide data on whale populations so that the international ban on commercial hunt can be re-examined or hopefully lifted eventually based on scientific studies."This is something we are prepared to demonstrate: That our program is in line with Article Eight of the convention and is not commercial whaling at all," said Noriyuki Shikata, spokesman for Japan's delegation at the court.Shikata also said that Japan would be challenging the court's jurisdiction to hear the case, but did not elaborate on the reason for the challenge.Australia is presenting its legal arguments this week and Japan will make its case starting July 2. New Zealand also gets a chance to outline its arguments July 8.The Sea Shepherd environmentalist group, whose pursuit of Japanese whalers ensures the hunt makes news each year, said that the opening of the case was a victory for whales and vindication of the group's controversial tactics in confronting the harpooners in the icy waters of the Southern Ocean."Without that, trade considerations would have been more important than the slaughter of whales in Australian waters and the Antarctic whale sanctuary," said Geert Vons of the Dutch arm of Sea Shepherd, who was in court to watch proceedings."It's a shame it's taken 10 years, but it is good that Australia is making this public statement by bringing this case against Japan."Campbell sought to broaden the dispute by casting Japan's decision to kill whales as undermining the global consensus to protect the broader environment."There is now broad recognition ... that the environment and its constituent elements are a common resource which has to be safeguarded and managed by collective action," he said.He also highlighted the devastating effect of wide-scale whaling before it was reined in by the 1946 convention, saying that the global blue whale population was estimated at 235,000-307,000 before whaling. A 1998 estimate put the population at "a mere 2,280 worldwide," he said.The court will take months to issue a final and binding decision on the legality of Japan's hunt.Australian officials are hoping that the court will deliver a judgment by the end of the year, ahead of the Southern Hemisphere summer, when Japan's annual hunt begins near Antarctica.Greenpeace campaigner John Frizell said he was impressed by the opening of the case."We have heard very strong arguments from Australia why this whaling should cease and I certainly hope they will prevail," he said. "This is commercial whaling and it should stop."

Share your comments: Log in using your HeraldNet account or your Facebook, Twitter or Disqus profile. Comments that violate the rules are subject to removal. Please see our terms of use. Please note that you must verify your email address for your comments to appear.


I've ported cc9cii BSA changes from https://github.com/OpenMW/openmw/pull/1955/ to current version of OpenMW. There is no impact on Morrowind BSA reading code - the code is only executed if previous BSA reader would reject the file because of unknown header. Linux and Windows builds passed successfully. I've tested the solution on various BSAs from Oblivion, Oblivion mods and Skyrim. I've run new compilation of OpenMW with few mods and started new Morrowind game - no issues found.

The cc9cii changes concerning Nif, ESM and ESP changes were not ported yet.

I had to use library that deals with zip compressed data structures, so I've decided to use boost, as boost is already used in the engine.

It is my first pull request in OpenMW - so please let me know about everything that does not seem right about it.

I wanted to make sure that cc9cii hard work on supporting later file formats does not get lost as OpenMW engine code evolves.

Support for new BSA formats will be useful for:


Q:

How to add a button on the Google maps in iOS?

I am new to iOS Programming and I have downloaded the google maps sdk for iOS and followed the instruction on their website ( as shown in this link
https://developers.google.com/maps/documentation/ios/start
)
and was able to get the map in my application.
Now I am trying to add a button on the screen at the bottom over Google maps for giving an option to the user to go back to the previous screen.
I just know that UIButton is a subclass of UIView and we can make a button appear on a view by making it the sub view of that class. Previously iOS used to use Google Maps by default by MKMapView and I have seen examples in books an on the Internet showing screen shots of apps where a button or a text box would appear on the map. But now just dragging the button in the interface builder doesn't help with the SDK of google maps.
Here is my code:
ViewController.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIButton *btn;

@end

ViewController.m
#import "ViewController.h"
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>
#import <CoreLocation/CoreLocation.h>

@interface ViewController ()

@end

@implementation ViewController
{
    GMSMapView *mapView_;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)loadView
{
    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone;

    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
    [locationManager startUpdatingLocation];

    //Latitude and longitude of the current location of the device.
    double lati = locationManager.location.coordinate.latitude;
    double longi = locationManager.location.coordinate.longitude;
    NSLog(@"Latitude = %f", lati);
    NSLog(@"Longitude = %f", longi);

    CLLocation *myLocation = [[CLLocation alloc] initWithLatitude:lati longitude:longi];

    // Create a GMSCameraPosition that tells the map to display the coordinate

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:lati
                                                            longitude:longi
                                                                 zoom:11.5];

    mapView_ = [GMSMapView mapWithFrame:[[UIScreen mainScreen] bounds] camera:camera];
    mapView_.myLocationEnabled = YES;
    self.view = mapView_;

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(lati, longi);
    marker.title = @"It's Me";
    marker.snippet = @"My Location";
    marker.map = mapView_;

    [mapView_ addSubview:_btn];
    [mapView_ bringSubviewToFront:_btn];

}
@end

You can see that in the last 2 lines I have made the button the subview of mapview and tried to bring it front. But this didn't help. Please let me know what is it that I am missing or if there is another way to do this by using some other function.
Please also do check the screenshot of the storyboard which I have created so that you can understand better what I am trying to do here.

Thanks.

A:

GMSMapView is subclass of UIView so you can add subviews as to any other view
Try this code
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(mapView_.bounds.size.width - 110, mapView_.bounds.size.height - 30, 100, 20);
button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
[button setTitle:@"Button" forState:UIControlStateNormal];
[mapView_ addSubview:button];

It adds 100x20 button as the subview of the GMSMapView, positioned to the bottom right corner. I have tested it and the button can be touched as in any other view
Edit:
Also move all your code from -loadView to -viewDidLoad. -loadView method is never called when using IB to create UI. Docs to -loadView says:

If you use Interface Builder to create your views and initialize the view controller, you must not override this method.

Edit 2:
I believe when you create view hierarchy using Interface Builder, you CAN NOT reset self.view property like you are doing.
Do this in your -viewDidLoad
[self.view addSubview: mapView_];

instead of
self.view = mapView_;

if you are passing GMSMapView to the self.view property, the map is only view which is in the controller from this point. Thats, I believe, the reason why u can't see your IB-created button.

A:

Make your view normally with InterfaceBuilder and to put mapView at 0 index subview :
mapView_ = [GMSMapView mapWithFrame:self.view.bounds camera:camera];
mapView_.myLocationEnabled = YES;
[self.view insertSubview:mapView_ atIndex:0];

Thanks to Raul Clauss from this thread
And you can custom the size of mapView, change  :
mapView_ = [GMSMapView mapWithFrame:_mapHolder.bounds camera:camera];
mapView_.myLocationEnabled = YES;
[_mapHolder insertSubview:mapView_ atIndex:0];

Where mapHolder, is a UIView made inside the IB.

A:

I faced the same issue and the fix is very easy, just override this UIViewController method:
-(void) viewWillAppear:(BOOL)animated and put your UIButton creation logic inside that method.
Example:
-(void) viewWillAppear:(BOOL)animated
{
 locationButton = [UIButton buttonWithType:UIButtonTypeCustom];
 locationButton.frame = CGRectMake(0, 30, self.view.frame.size.width/6, self.view.frame.size.height/6);
 [locationButton setImage:[UIImage imageNamed:@"location_enabled.png"] forState:UIControlStateNormal];
 [self.view addSubview:locationButton];
}


It was late June and retired firefighter Keith Newlin was speeding down the slopes of Snow Valley Mountain Resort near Running Springs. Never mind that the sun-soaked mountain was free of all winter snow.

The outdoor enthusiast was one of the first cyclists to try out Snow Valley’s new three-mile downhill cycling trail. Newlin and his bike zipped to the summit on a $6-million high-speed lift that was installed in December for skiers and snowboarders but converted this summer to carry bicycles.

“It was exciting,” Newlin said of his day on the slopes. “I’m glad they are doing it. Snow Valley has a lot of potential for summer stuff.”

Like other ski resort operators in the West, Snow Valley is no longer relying solely on winter snow to draw visitors to the peaks. The latest season of weak snowfall once again pushed ski resorts such as Snow Valley to add new money-making activities for summer and fall, including zip lines, yoga, downhill cycling, kids camps and mountainside weddings.

“It’s definitely part of what we have been seeing for the last several years,” said Michael Reitzell, president of the California Ski Industry Assn., which represents 30 ski resorts in California and Nevada. “It will only continue to grow.”

Such activities have grown partly because of the unpredictable snowfall over the last few years, a condition many scientists are blaming on climate change. The federal government gave the ski industry a boost by adopting a 2011 law that allows resorts that lease forest land to add year-round activities.

The 2016-2017 ski season was a boon for resorts in the West because of record snowfall and surging visitation numbers. But Mother Nature was not as generous with her snow during the most recent ski season.

California’s snowfall measured only 58% of the annual average as of April 1, the most recent measurement by the state’s Department of Water Resources.

At California and Nevada resorts, ski visits dropped 14% this season — from 7 million visitors during the 2016-2017 season to 6.03 million this season, according to Reitzell. Ski resorts in the West operated for an average of 140 days this season, down from 150 days last season, he said.

“As we have learned over the years, it’s a basic formula: If it snows, they will come,” Reitzell said.

The new high-speed ski lift has been fitted to take mountain bikes to the summit at Snow Valley Mountain Resort near Running Springs. (Snow Valley )

To hedge its bets against further seasons of meager snow, the state’s most popular resort, Mammoth Mountain Ski Area in the Eastern Sierra, plans a summer unveiling of Mammoth Mega Zip, a zip line with what the resort describes as the tallest vertical drop in North America (2,100 feet).

The zip line will allow two riders to fly down the mountain side by side for more than a mile, reaching speeds of up to 60 mph.

The resort is also opening a new elevated obstacle course for kids and a new network of rock climbing routes. The resort also is allowing electric bikes on the more than 80 miles of trails in the Mammoth Bike Park.

“As we see our summer visitation numbers continue to grow, we are going to continue to add activities for all ages,” Mammoth resort spokeswoman Lauren Burke said.

Mammoth Mountain has yet to disclose the fee to ride the Mega zip line, but a pass to use the bike park ranges from $55 to $59 a day.

The Snow Summit ski resort near Big Bear this year also added a summer day camp that lets kids hike, scale a 30-foot climbing wall, play on a trampoline, ride a chair lift and speed around on a mountain bike, among other activities. The camp can cost up to $48 a day, depending on the day of the week.

“I don’t look at it as if we are trying to make up for the winter snow,” said Justin Kanton, marketing manager for Big Bear Mountain Resorts, which includes the Bear Mountain and Snow Summit resorts. “We are trying to provide a fuller lineup of activities for the summer. We are trying to make sure people have stuff to do when they are up here.”

A rider zips down the mountain at Heavenly Ski Resort on the Ridge Rider Mountain Coaster. The gravity-powered coaster is scheduled to be open June 30. (Rachid Dahnoun )

At the Heavenly Ski Resort in South Lake Tahoe, a gravity-powered coaster opened on the mountain in 2016 to add to the resort’s summer activities. But the snow dump in the winter of 2016-2017 was so heavy that it damaged the tracks, forcing the resort to keep the ride offline last summer.

The Ridge Rider Mountain Coaster, which is tentatively scheduled to reopen June 30, reaches speeds of up to 27 mph on 3,400 feet of track, powered entirely by gravity on a descent of 300 feet. The riders can use levers to slow or stop the sleds.

The resort, which hasn’t revealed how much was spent to build the coaster, charges riders $27 each.

The resort also is starting a daily yoga class on a mountainside observation deck, at an elevation of more than 9,000 feet. The classes, offered during July and August, are free but guests who don’t have an annual ski pass must pay $49 for a gondola ride to the observation deck.

At Snow Valley, the six-seat, high-speed ski lift that opened in December can carry 2,600 skiers and snowboarders per hour, moving 1,000 feet per minute, compared with 400 feet per minute on the lift it replaced, said Kevin Somes, vice president and general manager of the resort.

The lift was modified this summer to carry bikes to the summit so that riders can speed on the three-mile trail to the base of the mountain on what Somes describes as a route of intermediate difficulty.

“There is a trend that the whole industry is moving toward: generating revenue year-round,” he said.

Resort management hopes to expand cycling in the next few years to 10 miles of bike trails. Riders who take the lift now, however, also get access to the neighboring Rim Nordic Bike Park, which has about 13 miles of trails, with difficulty levels that range from beginner to advanced.

With the faster ski lift, Somes said he hopes to also offer scenic locations on the mountain — such as verdant meadows — as sites for outdoor weddings.

“We are looking at everything that makes sense,” he said.

hugo.martin@latimes.com

Twitter: @hugomartin


Concentration polarization in translocation of DNA through nanopores and nanochannels.
In this Letter we provide a theory to show that high-field electrokinetic translocation of DNA through nanopores or nanochannels causes large transient variations of the ionic concentrations in front and at the back of the DNA due to concentration polarization (CP). The CP causes strong local conductivity variations, which can successfully explain the nontrivial current transients and ionic distributions observed in molecular dynamics simulations of nanopore DNA translocations as well as the transient current dips and spikes measured for translocating hairpin DNA. Most importantly, as the future of sequencing of DNA by nanopore translocation will be based on time-varying electrical conductance, CP, must be considered in experimental design and interpretation--currently these studies are mostly based on the incomplete pore conductance models that ignore CP and transients in the electrical conductance.


/**
 * Copyright 2014 National University of Ireland, Galway.
 *
 * This file is part of the SIREn project. Project and contact information:
 *
 *  https://github.com/rdelbru/SIREn
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.sindice.siren.search.node;

import static org.sindice.siren.search.AbstractTestSirenScorer.NodeTermQueryBuilder.ntq;
import static org.sindice.siren.search.AbstractTestSirenScorer.NodeBooleanQueryBuilder.nbq;
import static org.sindice.siren.search.AbstractTestSirenScorer.BooleanClauseBuilder.must;

import java.io.IOException;

import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.Scorer;
import org.junit.Test;
import org.sindice.siren.index.codecs.RandomSirenCodec.PostingsFormatType;
import org.sindice.siren.search.AbstractTestSirenScorer;

public class TestLuceneProxyNodeScorer extends AbstractTestSirenScorer {

  @Override
  protected void configure() throws IOException {
    this.setAnalyzer(AnalyzerType.JSON);
    this.setPostingsFormat(PostingsFormatType.RANDOM);
  }

  @Test
  public void testNextDoc()
  throws Exception {
    this.addDocuments(
      "{ \"aaa bbb\" : \"aaa ccc\" , \"ccc\" \"bbb ccc\" }",
      "{ \"aaa\" : \"aaa bbb ddd\" }"
    );

    final Scorer scorer1 = this.getScorer(
      ntq("aaa").getLuceneProxyQuery()
    );

    assertTrue(scorer1.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(0, scorer1.docID());
    assertEquals(2, scorer1.freq(), 0);
    assertTrue(scorer1.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(1, scorer1.docID());
    assertEquals(2, scorer1.freq(), 0);
    assertTrue(scorer1.nextDoc() == DocIdSetIterator.NO_MORE_DOCS);

    final Scorer scorer2 = this.getScorer(
      ntq("ccc").getLuceneProxyQuery()
    );

    assertTrue(scorer2.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(0, scorer2.docID());
    assertEquals(3, scorer2.freq(), 0);
    assertTrue(scorer2.nextDoc() == DocIdSetIterator.NO_MORE_DOCS);

    final Scorer scorer3 = this.getScorer(
      ntq("ddd").getLuceneProxyQuery()
    );

    assertTrue(scorer3.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(1, scorer3.docID());
    assertEquals(1, scorer3.freq(), 0);
    assertTrue(scorer3.nextDoc() == DocIdSetIterator.NO_MORE_DOCS);
  }

  @Test
  public void testAdvance()
  throws Exception {
    this.addDocuments(
      "{ \"baba\" : \"aaa ccc\" , \"ccc\" \"bbb ccc\" }",
      "{ \"aaa\" : \"aaa bbb ddd\" }",
      "{ \"ddd\" : [ \"bobo\", \"bibi\" ] }"
    );

    final Scorer scorer1 = this.getScorer(
      ntq("bobo").getLuceneProxyQuery()
    );

    assertTrue(scorer1.advance(2) != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(2, scorer1.docID());
    assertEquals(1, scorer1.freq(), 0);
    assertTrue(scorer1.nextDoc() == DocIdSetIterator.NO_MORE_DOCS);

    final Scorer scorer2 = this.getScorer(
      ntq("baba").getLuceneProxyQuery()
    );
    assertTrue(scorer2.advance(2) == DocIdSetIterator.NO_MORE_DOCS);
  }

  @Test
  public void testAdvanceInfiniteLoop()
  throws Exception {
    this.addDocuments(
      "{ \"baba\" : \"bibi ccc\" , \"ccc\" \"bbb ccc\" }",
      "{ \"baba bibi baba bibi\" : \"aaa bbb ddd\" }",
      "{ \"baba bibi\" : \"aaa bbb ddd\" }"
    );

    final Scorer scorer1 = this.getScorer(
      nbq(must("baba", "bibi")).getLuceneProxyQuery()
    );

    assertTrue(scorer1.advance(0) != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(1, scorer1.docID());
    assertEquals(2, scorer1.freq(), 0);
    final float score1 = scorer1.score();
    assertTrue(scorer1.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
    assertEquals(2, scorer1.docID());
    assertEquals(2, scorer1.freq(), 0);
    final float score2 = scorer1.score();
    assertTrue(score1 > score2);
    assertTrue(scorer1.nextDoc() == DocIdSetIterator.NO_MORE_DOCS);
  }

}


Online Extras

MORE ONLINE:To read more about local leaders who are leaning in and creating opportunities for women in the Erie community, click here.

MORE ONLINE:To read more food-related stories, get recipes, see food-related photo galleries and videos, click here.

ABOUT THIS SERIES

Leaning Into Leadership is an occasional series that features local leaders who are leaning in and creating opportunities for women in our community. This is the series' final installment. Find more stories at GoErie.com/leaningin.

It all started with the cream puffs. "You just made the batter and put it in the oven and whoop!" said Jean Reed, 57, sous chef at the Lake View Country Club, where she's worked for 33 years. She remembered cream puffs were the first thing she ever cooked.

"That was so much fun. And I'm still making cream puffs."

Reed is something of a rare breed in Erie: a female kitchen manager.

"It's still a man's world out there, and you have to be able to show them that you love this work and you're willing to work hard," Reed said.

Heidi May, 34, executive chef at the Bel-Aire Clarion Hotel and Conference Center, 2800 W. Eighth St., can tell you that many kitchens have changed dramatically, and capable women are as welcome as men on staff. Others, though, are still behind the times.

"The last chef I worked for told me that women were too much drama," May said, adding that she was already working at that restaurant when he came on board. "Most men chefs have been very supportive, but one told me he wouldn't have hired me."

While the profession might still bear the residue of gender discrimination, May said, other companies she's worked for wouldn't have tolerated that chef's point of view.

She said there are other more practical reasons fewer women make it up the ladder in the kitchen.

She and other chefs and instructors said that the physical and time demands of working as a professional chef just don't work for many women who want to raise a family.

"I don't see a lot of applications from females, really," May said. "We work crazy hours, seven days a week, holidays and weekends when most people would want to be with their family."

Family time?

Jessica Law, 24, a chef instructor at the Culinary and Wine Institute of Mercyhurst North East, worked on gorgeous and delicate caramel "cages" that would be served the next day set over a pastry.

As she worked in a Mercyhurst kitchen -- filled with women -- she agreed that professional cooking might not work for family-oriented females.

"I just got married this summer, and the idea of starting a family with a job like that would be conflicting," Law said.

Reed raised three children while working at the country club, but it wasn't easy.

"I worked five minutes from home," she said. "I had the opportunity to work a full day, but take periods of leave when need be."

Michelle Davis, 34, sous chef at Bertrand's Bistro on North Park Row, who is studying to be certified as an executive chef, sees the male-dominated culture changing, too.

"I think people who have children can work in this industry," she said. "Some people have to bend a little bit, rely on family, but I've seen people make it work."

There are other reasons more women don't even want to work in professional kitchens, including physical requirements of standing on your feet and lifting huge bags of ingredients, and heavy scrubbing, work done by everyone in the kitchen.

"You actually have to be physically ready for that," Reed said. After 33 years, she said she's taken up yoga in an attempt to keep her body strong enough to do her job.

Kitchen culture

Aspiring chef Stephanie Cruz-Warner, 24, carefully slid a cylindrical "crab tower" out of a can she used to shape it. The tower included layers of off-white crab meat, bright green avocado and tomato salsa. It was almost too pretty to eat.

Cruz-Warner showed it off to her instructor, who smiled proudly, and then sat down to talk about women in her chosen profession.

To begin with, she's one woman who has no problem lifting a 50-pound bag of flour.

The Mercyhurst North East culinary student, who also works at the Erie Club, is a power lifter. She said she can dead lift 215 pounds.

She said she wants to incorporate her love of working out into her own restaurant.

"I'd like to open up some kind of restaurant with a power lifting side, with a gym that serves healthy food for athletes," Cruz-Warner said.

She said she sees no lack of interest in professional cooking from women she knows.

"When I'm at work, there's not a lot of women," she said. "But when I go to school, there's all kinds of women. I think kitchen culture is changing."

Melissa Ripley, 35, agrees. "My classes seem to have more female than male students," she said.

Mercyhurst North East chef instructor Dennis Dunne, 63, said that in general, his female students are more serious about working in the professional cooking world than his male students.

"It's not that there aren't any men," he said. "I have some excellent male students, but the majority of women who come into this program are more serious about wanting to do it."

He said he thinks that the male-dominated kitchens are quickly becoming a thing of the past.

"Modern chefs have evolved to think differently about women in the kitchen," Dunne said. "At this present time, I think any female that walks into a kitchen has just as good a shot as any guy does, all things being equal."

JENNIE GEISLER can be reached at 870-1885 or by e-mail. Visit her food blog at GoErie.com/blogs/loaves. Follow her on Twitter at twitter.com/ETNgeisler.

Online Extras

MORE ONLINE:To read more about local leaders who are leaning in and creating opportunities for women in the Erie community, click here.

MORE ONLINE:To read more food-related stories, get recipes, see food-related photo galleries and videos, click here.

ABOUT THIS SERIES

Leaning Into Leadership is an occasional series that features local leaders who are leaning in and creating opportunities for women in our community. This is the series' final installment. Find more stories at GoErie.com/leaningin.