text:
BSLS_IDENT_RCSID(bdlb_numericparseutil_cpp, "$Id$ $CSID$")

#include <bdlb_chartype.h>

#include <bslma_allocator.h>
#include <bslma_sequentialallocator.h>
#include <bslma_default.h>

#include <bslmf_assert.h>

#include <bsl_string_view.h>
#include <bsl_cctype.h>       // for 'bsl::isspace'
#include <bsl_climits.h>      // for 'CHAR_MIN'
#include <bsl_clocale.h>      // for 'bsl::setlocale'
#include <bsl_cstdlib.h>      // for 'bsl::strtod'

#include <bsls_assert.h>
#include <bsls_platform.h>

#if defined(BSLS_PLATFORM_CMP_MSVC) && BSLS_PLATFORM_CMP_VERSION < 1900
    // Needed for fixing the broken 'strtod', see below.
#include <bdlb_chartype.h>
#include <bdlb_string.h>
#include <bsl_limits.h>
#endif

namespace {

using namespace BloombergLP;

namespace u {

typedef bsls::Types::Int64  Int64;
typedef bsls::Types::Uint64 Uint64;

static
bsl::string_view stripOptionalPlus(const bsl::string_view& positiveNum)
    // Return a string reference to the characters of the specified
    // 'positiveNum' that do not contain the optionally present first '+'
    // ASCII character.  The behavior is undefined if 'positiveNum.empty()'.
{
    BSLS_ASSERT(!positiveNum.empty());

    return ('+' == positiveNum[0]) ? positiveNum.substr(1) : positiveNum;
}

#if defined(BSLS_PLATFORM_OS_LINUX)
static int doubleSign(double number)
    // Return 0 if the specified 'number' is positive, and a non-zero value
    // otherwise.  This function is needed only until we have all platforms
    // updated to C++11 that supports the 'signbit' function.
{
    const unsigned char *bytes = reinterpret_cast<unsigned char *>(&number);

#ifdef BSLS_PLATFORM_IS_BIG_ENDIAN
    static bsl::size_t pos = 0;
#elif defined(BSLS_PLATFORM_IS_LITTLE_ENDIAN)
    static bsl::size_t pos = sizeof(double) - 1;
#else
    #error "Neither big or little endian?  Compilation aborted."
    BSLS_PLATFORM_COMPILER_ERROR;
#endif
    return bytes[pos] & 0x80;
}
#endif // defined(BSLS_PLATFORM_OS_LINUX)

#if defined(BSLS_PLATFORM_CMP_MSVC) && BSLS_PLATFORM_CMP_VERSION < 1900
// 'strtod' in the Microsoft CRT (C RunTime Library) has a non-standard
// implementation prior to Microsoft Visual Studio 2015.  The function (in that
// non-standard implementation) does not parse the special 'double' values NaN
// and Infinity as specified on
// http://en.cppreference.com/w/cpp/string/byte/strtof.  When Microsoft's
// 'strtod' reports that it could not parse its input string, the following
// functions are used to attempt to parse them as NaN or Infinity.

static bool isPrefixCaseless(const bsl::string_view& inputString,
                             const bsl::string_view& prefix)
    // Check if the specified 'inputString' has the specified 'prefix' with
    // case insensitive comparison.  Return 'true' if the prefix matches and
    // 'false' otherwise.
{
    if (inputString.length() < prefix.length()) {
        return false;                                                 // RETURN
    }

    return String::areEqualCaseless(
        inputString.data(), prefix.length(), prefix.data(), prefix.length());
}

static bool safeCheck(const bsl::string_view&     inputString,
                      bsl::string_view::size_type pos,
                      char                        ch)
    // Check in the specified 'inputString', if the characters at the specified
    // 'pos', if such position exists, equals to the specified 'ch'.
{
    return (inputString.length() > pos) && inputString[pos] == ch;
}

static bool isNanString(bsl::string_view        *remainder,
                        const bsl::string_view&  inputString)
    // Check the specified 'inputString' if its prefix is a "NaN" string
    // representation (see
    // http://en.cppreference.com/w/cpp/string/byte/strtof).  If it is, load
    // the rest of the 'inputString' into the specified 'remainder' and return
    // 'true'; otherwise do not change 'remainder' and return 'false'.
{
    if (!u::isPrefixCaseless(inputString, "NaN")) {
        return false;                                                 // RETURN
    }

    if (!u::safeCheck(inputString, 3, '(')) {
        *remainder = inputString.substr(3);

        return true;                                                  // RETURN
    }

    typedef bsl::string_view::size_type size_type;
    for (size_type i = 4; i < inputString.length(); ++i) {
        const char ch = inputString[i];

        if (ch == ')') {
            ++i;  // Include the ')'
            *remainder = inputString.substr(i);

            return true;                                              // RETURN
        }

        if (ch != '_' && !CharType::isAlnum(ch)) {
            break;
        }
    }

    return false;
}

static int parseNanAndInf(double           *result,
                          bsl::string_view *remainder,
                          bsl::string_view  inputString)
    // Check the specified 'inputString' if its prefix is a "NaN" or Infinity
    // string representation (see
    // http://en.cppreference.com/w/cpp/string/byte/strtof).  If it is, load
    // the result of the conversion into the specified 'result', load the rest
    // of the 'inputString' into the specified 'remainder' and return zero;
    // otherwise do not change 'remainder' and return a non-zero value.
{
    int sign = 1;

    if (inputString[0] == '+' || inputString[0] == '-') {
        if (inputString[0] == '-') {
            sign = -1;
        }
        if (inputString.size() == 1) {
            return -5;                                                // RETURN
        }
        inputString.assign(inputString.data() + 1, inputString.length() - 1);
    }

    if (u::isPrefixCaseless(inputString, "INFINITY")) {
        *result = sign * bsl::numeric_limits<double>::infinity();
        *remainder = inputString.substr(8);

        return 0;                                                     // RETURN
    }

    if (u::isPrefixCaseless(inputString, "INF")) {
        *result = sign * bsl::numeric_limits<double>::infinity();
        *remainder = inputString.substr(3);

        return 0;                                                     // RETURN
    }

    if (u::isNanString(remainder, inputString)) {
        // This is the only way of making a negative quiet NaN on Microsoft
        // Visual C++.  Multiplying with -1 does not work, it remains positive.
        // Assigning first positive then negating changes the value from QNAN
        // to something called IND.

        if (sign == -1) {
            *result = -bsl::numeric_limits<double>::quiet_NaN();
        }
        else {
            *result = bsl::numeric_limits<double>::quiet_NaN();
        }
        return 0;                                                     // RETURN
    }

    return -4;
}

#endif  // Microsoft Visual Studio prior 2015 non-standard 'strtod' workaround.

}  // close namespace u
}  // close unnamed namespace

namespace BloombergLP {
namespace bdlb {

                        // -----------------------
                        // struct NumericParseUtil
                        // -----------------------
// CLASS METHODS
int NumericParseUtil::characterToDigit(char character, int base)
{
    BSLS_ASSERT_SAFE(2 <= base);
    BSLS_ASSERT_SAFE(base <= 36);

    BSLMF_ASSERT('9' - '0' ==  9);
    BSLMF_ASSERT('z' - 'a' == 25);

    BSLMF_ASSERT(0x30 == '0' && 0x39 == '9');  // Verify ASCII

    typedef CharType Ct;
    static const int aShift = 'a' - 10;
    const int digit = Ct::isDigit(character) ? character - '0'
                    : Ct::isAlpha(character) ? Ct::toLower(character) - aShift
                                             :                              -1;
    return digit < base ? digit : -1;
}

int NumericParseUtil::parseDouble(double                  *result,
                                  bsl::string_view        *remainder,
                                  const bsl::string_view&  inputString)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);

#ifdef BSLS_PLATFORM_OS_WINDOWS
    // 'setlocale' is slow on Windows, see '{drqs 161551330}'.

    BSLS_ASSERT_SAFE(bsl::setlocale(LC_NUMERIC, 0) == bsl::string_view("C"));
#else
    BSLS_ASSERT(bsl::setlocale(LC_NUMERIC, 0) == bsl::string_view("C"));
#endif

    // An empty string cannot be a number.

    if (inputString.empty()) {
        *remainder = inputString;
        return -1;                                                    // RETURN
    }

    // We need to ensure that the string does not start with a whitespace
    // (because our contract says so).  Our current implementation uses the
    // 'bsl::strtod' function and that happens to allow leading whitespace.  So
    // it *would* accept leading whitespace, we need to ensure there is none.
    // First check if the string starts with a 7-bit ASCII whitespace (using
    // our own ASCII-only function).  Then we must check for extra,
    // local-dependent whitespace as well, using 'bsl::isspace' that depends on
    // the 'LC_CTYPE' locale-category setting that we allow to be anything.
    // Because 'bsl::strtod' will skip any special whitespace enabled by the
    // uncontrolled (by preconditions) 'LC_CTYPE' locale-category but our
    // contract does not allow any special characters either we have to ensure
    // not to call 'strtod' if the string starts with such a whitespace.
    // 'bsl::isspace' (that is 'std::isspace') does not allow 'char' values
    // that are negative (not representable as 'unsigned char') so before
    // calling it (to check for 'LC_CTYPE' special whitespace) we convert the
    // first character to 'unsigned char'.  As we *know* that no text with any
    // non-ASCII character in it (for example UTF-8) can be a valid 'double' by
    // our own definition (function contract) we first also check that the
    // 'unsigned char' does not have its top bit set, and if it does, we return
    // an error.  We avoid calling into the 'std::isspace' implementation in
    // case of non-ASCII characters as an overly paranoid check to ensure not
    // to hit some performance bottleneck with that extra call unless we have
    // to.  This complicated approach will be soon replaced with a
    // comprehensive locale-independent solution for all code that assumes the
    // "C" locale is set, including this one.  This is just a quick fix to
    // enable this function to operate under node.js that changes the global
    // locale away from "C", except for 'LC_NUMERIC'.

    unsigned char firstAsUchar = static_cast<unsigned char>(inputString[0]);
    if (firstAsUchar & 0x80u              ||  // Not (7-bit) ASCII first char
        CharType::isSpace(inputString[0]) ||  //   or an ASCII whitespace char
        bsl::isspace(firstAsUchar))           //   or locale-enabled whitespace
    {                                         // so an invalid first character
        *remainder = inputString;             // for a 'double' as per contract
        return -3;                                                    // RETURN
    }

    static const size_type     k_BUFFER_SIZE = 128;
    char                       rawBuffer[k_BUFFER_SIZE];
    bslma::SequentialAllocator alloc(rawBuffer, k_BUFFER_SIZE);
    const bsl::string          nullTerminatedInput(inputString, &alloc);

    char         *endPtr;
    const char   *buffer = nullTerminatedInput.c_str();
    const double  rv     = bsl::strtod(buffer, &endPtr);

    *remainder = inputString.substr(endPtr - buffer);

    if (endPtr != buffer) {
        *result = rv;
#if defined(BSLS_PLATFORM_OS_LINUX)
        // 'strtod' is broken in libstdc++, parsing negative NaN into positive
        // NaN.  We are not checking for compilers because both clang and g++
        // exhibit the fault on Linux.

        if (*result != *result && inputString[0] == '-') {
            if (!u::doubleSign(*result)) {
                // If 'result' is (incorrectly) a positive NaN value, reverse
                // the sign

                *result = -*result;
            }
        }
#endif
        return 0;                                                     // RETURN
    }

#if defined(BSLS_PLATFORM_CMP_MSVC) && BSLS_PLATFORM_CMP_VERSION < 1900
    // 'strtod' in the Microsoft CRT (C RunTime Library) has a non-standard
    // implementation prior to Microsoft Visual Studio 2015.  The function (in
    // that non-standard implementation) does not parse the special 'double'
    // values NaN and Infinity as specified on
    // http://en.cppreference.com/w/cpp/string/byte/strtof.  When Microsoft's
    // 'strtod' reports that it could not parse its input string, the
    // following function is used to attempt to parse them as NaN or Infinity.

    return u::parseNanAndInf(result, remainder, inputString);
#else
    return -4;
#endif
}

int NumericParseUtil::parseInt(int                     *result,
                               bsl::string_view        *remainder,
                               const bsl::string_view&  inputString,
                               int                      base)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    u::Int64  res = 0;
    const int rv  = parseSignedInteger(&res,
                                       remainder,
                                       inputString,
                                       base,
                                       -static_cast<u::Int64>(0x80000000),
                                       static_cast< u::Int64>(0x7FFFFFFF));
    if (0 == rv) {
        *result = static_cast<int>(res);
    }
    return rv;
}

int NumericParseUtil::parseInt64(bsls::Types::Int64      *result,
                                 bsl::string_view        *remainder,
                                 const bsl::string_view&  inputString,
                                 int                      base)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    u::Int64  res = 0;
    const int rv  = parseSignedInteger(
                             &res,
                             remainder,
                             inputString,
                             base,
                             -static_cast<u::Int64>(0x7FFFFFFFFFFFFFFFuLL) - 1,
                             static_cast< u::Int64>(0x7FFFFFFFFFFFFFFFuLL));
    if (0 == rv) {
        *result = res;
    }
    return rv;
}

int NumericParseUtil::parseUint(unsigned int            *result,
                                bsl::string_view        *remainder,
                                const bsl::string_view&  inputString,
                                int                      base)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    if (inputString.empty()) {
        *remainder = inputString;
        return -1;                                                    // RETURN
    }
    const bsl::string_view num = u::stripOptionalPlus(inputString);

    u::Uint64 res = 0;
    const int rv  = parseUnsignedInteger(&res,
                                         remainder,
                                         num,
                                         base,
                                         static_cast<u::Int64>(0xFFFFFFFF));
    if (0 == rv) {
        *result = static_cast<unsigned int>(res);
    }
    return rv;
}

int NumericParseUtil::parseUint64(bsls::Types::Uint64     *result,
                                  bsl::string_view        *remainder,
                                  const bsl::string_view&  inputString,
                                  int                      base)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    if (inputString.empty()) {
        *remainder = inputString;
        return -1;                                                    // RETURN
    }
    const bsl::string_view num = u::stripOptionalPlus(inputString);

    const u::Uint64 k_MAX = static_cast<u::Int64>(0xFFFFFFFFFFFFFFFFuLL);
    u::Uint64       res   = 0;
    const int       rv    = parseUnsignedInteger(&res,
                                                 remainder,
                                                 num,
                                                 base,
                                                 k_MAX);
    if (0 == rv) {
        *result = res;
    }
    return rv;
}

int NumericParseUtil::parseUshort(unsigned short          *result,
                                  bsl::string_view        *remainder,
                                  const bsl::string_view&  inputString,
                                  int                      base)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    if (inputString.empty()) {
        *remainder = inputString;
        return -1;                                                    // RETURN
    }
    const bsl::string_view num = u::stripOptionalPlus(inputString);

    u::Uint64 res = 0;
    const int rv  = parseUnsignedInteger(&res,
                                         remainder,
                                         num,
                                         base,
                                         static_cast<u::Int64>(0xFFFF));
    if (0 == rv) {
        *result = static_cast<unsigned short>(res);
    }
    return rv;
}

int NumericParseUtil::parseShort(short                   *result,
                                 bsl::string_view        *remainder,
                                 const bsl::string_view&  inputString,
                                 int                      base)
{
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(result);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    u::Int64  res = 0;
    const int rv  = parseSignedInteger(&res,
                                       remainder,
                                       inputString,
                                       base,
                                       -static_cast<u::Int64>(32768),
                                       static_cast< u::Int64>(32767));
    if (0 == rv) {
        *result = static_cast<short>(res);
    }
    return rv;
}

int NumericParseUtil::parseSignedInteger(bsls::Types::Int64       *result,
                                         bsl::string_view         *remainder,
                                         const bsl::string_view&   inputString,
                                         int                       base,
                                         const bsls::Types::Int64  minValue,
                                         const bsls::Types::Int64  maxValue)
{
    BSLS_ASSERT(result);
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);
    BSLS_ASSERT(minValue <= 0);
    BSLS_ASSERT(maxValue >= 0);

    if (0 == inputString.length()) {
        // ERROR: The number must have at least one digit.

        *remainder = inputString;
        return -1;                                                    // RETURN
    }

    u::Uint64 res = *result;

    if ('-' == inputString[0]) {
        const bsl::string_view num = inputString.substr(1);
        const int              rv  = parseUnsignedInteger(
                                        &res,
                                        remainder,
                                        num,
                                        base,
                                        static_cast<u::Uint64>(~minValue) + 1);
        if (0 == rv) {
            *result = -res;
        }
        return rv;                                                    // RETURN
    }

    // Positive number
    const int rv = parseUnsignedInteger(&res,
                                        remainder,
                                        u::stripOptionalPlus(inputString),
                                        base,
                                        maxValue);
    if (0 == rv) {
        *result = res;
    }
    return rv;
}

int NumericParseUtil::parseUnsignedInteger(
                                        bsls::Types::Uint64       *result,
                                        bsl::string_view          *remainder,
                                        const bsl::string_view&    inputString,
                                        int                        base,
                                        const bsls::Types::Uint64  maxValue)
{
    BSLS_ASSERT(result);
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);

    const u::Uint64 maxCheck = maxValue / base;
    const size_type length   = inputString.length();
    if (0 == length) {
        // ERROR: The number must have at least one digit.

        *remainder = inputString;
        return -1;                                                    // RETURN
    }

    u::Uint64 res   = 0;
    int       digit = characterToDigit(inputString[0], base);
    if (digit == -1) {
        *remainder = inputString;
        // ERROR: The first character must be a digit.

        return -2;                                                    // RETURN
    }

    size_type i = 0;
    while (-1 != digit) {
        if (res < maxCheck) {
            res = res * base + digit;
            if (++i >= length) {
                break;                                                 // BREAK
            }
            digit = characterToDigit(inputString[i], base);
        }
        else if (res == maxCheck &&
                 digit <= static_cast<int>(maxValue % base)) {
            res = res * base + digit;
            ++i;
            break;                                                     // BREAK
        }
        else {
            break;  // BREAK
        }
    }

    *remainder = inputString.substr(i);
    *result    = res;

    return 0;
}

int NumericParseUtil::parseUnsignedInteger(
                                       bsls::Types::Uint64       *result,
                                       bsl::string_view          *remainder,
                                       const bsl::string_view&    inputString,
                                       int                        base,
                                       const bsls::Types::Uint64  maxValue,
                                       int                        maxNumDigits)
{
    BSLS_ASSERT(result);
    BSLS_ASSERT(remainder);
    BSLS_ASSERT(2 <= base);
    BSLS_ASSERT(base <= 36);
    BSLS_ASSERT(0 <= maxNumDigits);

    const u::Uint64 maxCheck = maxValue / base;
    const size_type length   = inputString.length();

    u::Uint64 res   = 0;
    int       digit = characterToDigit(inputString[0], base);
    if (digit == -1) {
        // ERROR: The number must have at least one digit.

        *remainder = inputString;
        return -1;                                                    // RETURN
    }

    size_type i = 0;
    while (-1 != digit && maxNumDigits--) {
        if (res < maxCheck) {
            res = res * base + digit;
            if (++i >= length) {
                break;                                                 // BREAK
            }
            digit = characterToDigit(inputString[i], base);
        }
        else if (res == maxCheck &&
                 digit <= static_cast<int>(maxValue % base)) {
            res = res * base + digit;
            ++i;
            break;                                                     // BREAK
        }
        else {
            break;                                                     // BREAK
        }
    }

    *remainder = inputString.substr(i);
    *result = res;

    return 0;
}

}  // close package namespace
}  // close enterprise namespace

// ----------------------------------------------------------------------------
// Copyright 2017 Bloomberg Finance L.P.
//
// 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.
// ----------------------------- END-OF-FILE ----------------------------------

redpajama_set_name: RedPajamaGithub


You want change. That's obvious. You don't like some of the situations you find yourself in and you want things to be different. That's understandable. Now for the really big BAM! You are what's got to change. In order for you to experience something different you must create with different energy. It's like gardening really. When you garden you decide what harvest you want and you plant that seed. You don't plant onions if you don't like onions. If you want corn you plant corn seed knowing that the result will be delicious corn. You wouldn't plant corn seed and hope, wish, meditate on and hang up vision boards of peas. You know that peas only grow when you plant pea seed.
Now you might be thinking, this is a bit silly. Of course I know you have to plant the vegetable seed you want in order to get it. While we realize this with flowers and vegetables we don't always understand that the same principle is true for everything else in life. In order to get loving relationship, you must plant the loving relationship seed. If you want financial abundance, then that is the seed you plant and nurture. A new mindset is needed here as well as different seed.
Let's take an example from the garden to help us understand this. When you know you want corn and you plant corn seed, you "know" that corn is what you'll get. There is no doubt at all. You don't worry or stress about getting less than or different that what you planted. You know corn is yours. You understand that within that tiny seed is a complete corn plant including the ears of corn covered with delicious kernels of sweet corn. You don't into and out of knowing that it's so. There is total understanding that you have corn growing in your garden, forming itself in complete form, nothing left out, nothing added. You are in a mindset of knowing for a fact that corn is yours. When you plant vegetable or flower seed there is no moment of wondering what you'll get or if you'll get what you want. You know it's a done deal, that it's so. It's the law of seed planting.
Now, apply this mindset to every other area of your life. When you want money, home, car, loving relationship, are you knowing that it's already yours? I'm not asking you to get into the mindset of "it's on the way". That's sure to keep it always on the way, through hills, valleys and dead end roads. When you plant your corn seed, you don't run around saying, "my corn's on the way'. You state matter of fact, I have corn in my garden. I will enjoy this corn. You know that corn is yours, do you know the relationship, money, joy, car, home, or job is yours? It's already yours!
Before you even finish forming the desire what you want is yours. It's a done deal. There is nothing to create, or attract, or get good enough for. It's yours. Anything, everything you desire is already yours. That's fact. You just don't know it. You've spent years believing you had to work hard and maybe get it. Now I'm not saying you don't have to put some feet to the pavement in order to experience things, I'm saying you don't have to struggle, worry and stress trying to "make things happen".
You are Source Energy. This Creative Principle moves in and through you all them time to bring into form that which you know to be so. Let me give you an example from the Bible. Jesus had been teaching for hours. There were thousands of people hanging on his every word as he explained Creative Principles with stories and examples. After a while his students came to him, they were probably hungry, and urged him to stop teaching for the day. They pointed out that all those people had been listening for many hours and were hungry. Jesus told his students to take the picnic baskets they had brought and hand that food out. His students looked at each other rolling their eyes and shaking their heads in wonder and reminded Jesus that the picnic baskets were their lunch and there were only thirteen of them, the crowd held thousands. There just wasn't enough food. Now Jesus who didn't even use vision boards knew something and realized this was a great opportunity to teach the greatest lesson of the day. He said, "bring me the baskets".
Now, pay attention, this is where it gets really interesting. Jesus took the picnic baskets, held them for a moment and said something amazing and life changing if you understand it. He said, "Thank You". He instructed his students to hand out the food to the crowd. They made their way through the people who had sat down and relaxed handing each one fish and bread. The students then returned the baskets with left overs for dinner that night inside.
This is knowing. This is the mindset I'm talking about. Notice Jesus didn't spend an hour looking at his vision board or working up a "good feeling", he didn't beg, plead or demand. He "KNEW". Thank you was all that was necessary.
Let me state something very important here. Saying thank you isn't the magic. Knowing is the magic. You've spent your whole life believing that good was withheld from you, that you had to earn it, or create it, or become magnitized enough to attract it from the cyber shopping warehouse in the etheric realms. Now it's time to Know. Know Who You Really Are. Express that knowing. You will always bring forth into physical for what you "know" is true. Look at your life, what is it showing you about your knowing mindset? That's what you must change in order to change what's being reflected back to you.
You are the key to getting what you want to experience.
Empower Yourself Today, Visit www.TheBarefootGuru.com for spiritual tools, coaching, books, stones, crystals, healing jewelry and dream catchers to enhance your journey!
Just about everyone wants money. If they have just a little they want more, if they have loads of the stuff they still want more. What is it about money that drives people to get more and more of it?
Is there something about our desire for money that we just are not getting? I think so. Money represents power and control over your own life. Having money means you are secure, safe and capable of taking care of yourself and your family.
The real truth is that you are the power. You are already everything you are trying to get money to show that you are. When you realize that money is the medium of exchange, it's what you trade for other stuff, not the energy of creation itself, life is more fun and less stressful.
Your desire for money and the stuff you trade money for is just you trying to remind yourself that you are the energy to bring all things into form.
Stop stressing over "getting" and enjoy "being".
When you shift your attitude about money and who you are, money flows more easily into your life and you sure enjoy your life a lot more.
Watch the video about what wanting money means.
Happy Independence Day.. to our Nation and to each of us. You are not only an American you are a Free Creative Being. Wow, that's exciting isn't it? Just think about what being free means to you. Not only can you work where you please, live where you desire, marry, have children, drive a car and many other "free" things.. but .. much bigger than that.. you can Create Whatever You Desire to experience.
Freedom is much more than just being able to vote, as wonderful as that is. It's more than buying property, owning a business. It's about personal freedom. You get to decide what you will experience. You get to create it as you go along.
Using the imagination and passionate feelings you can pull molecules together into forms to interact with. That's exciting isn't it?
As a free Being you can decide to be happy or sad, angry or peaceful, prospereous or impoverished. The choices are all yours and no one has any power over you and what you create for yourself.
This is true freedom. Total freedom. Even when others create experiences you get to decide how to feel about them, what if anything to do. Whether or not to even get emotionally involved with the creations of others.
You are so free that you can wake up every morning and decide ahead of time how you want your day to progress, how you want to feel and what you want to interact with. That's pure power. Power to create and it's all yours.
You decide whether to go along with the flow of the tribe or strike out on your own and dance to your inner drummer. You think and feel things into physical form just by wanting them and paying attention to them. You grow these creations in your imagination and emotions, always bringing into form a reflection of what you've already created within you.
You are so free that no matter what you've already created, you are not stuck with it. You can change your life and your experiences at any given moment just by creating something new to experience. You know how to do it. Go within, see, feel, hold onto that seeing and feeling, celebrate the creation, walk in it, play with it.
You are a FREE creative Being. You can bring whatever you like into form, relax it and create again if the first creation isn't to your liking. It's fun. It's Who You Are.. a Creator.. bringing thought into form over and over again.
It starts with a thought, then a feeling joins, action soon takes place and before your eyes a new experience has formed. This is what Freedom Is. Grab hold of it, create with consciousness and with great joy.
Your right is to Be Happy is you so decide. Discover how to take the creative reins and bring forth a Happy Life today.
Get your copy of this How to Be Happy Ebook Today!


The City of Suffolk, Va., is building a coffee empire. J.M. Smucker Company is here. So is Massimo Zanetti USA. Peet's Coffee & Tea recently purchased a site for its East Coast roastery.
"We like to call Suffolk the 'Caffeine Capital'," says Kevin Hughes, the city's economic development director.
This city of 90,000 has much going for it. There's easy access to rail and an interstate intermodal transportation network. There's a knowledgeable workforce and city officials ready to help new businesses find homes here. Its most important asset, however, is proximity with the Port of Virginia, a dynamic state-owned shipping center 30 miles to the east.
The port, located 190 miles by truck south of Washington, D.C., was the seventh largest American coffee import center in 2017. Together with Baltimore (Md.), Savannah (Ga.), and Charleston (S.C.), about a third of all green coffee imported into the United States comes into these Mid-Atlantic ports. Current operations and future expansion in Virginia signals a bright future for coffee here.
The port handled 2.85 million TEUs in 2018.
It operates 30 Suez-class ship-to-shore cranes and 14 Post-Panamax quay cranes.
There are no aerial obstructions.
An integrated rail system allows cargo to reach Chicago and many other Midwest destinations in less than two days.
The port also benefits from three coffee warehouse companies licensed by the Intercontinental Exchange (ICE) for green coffee traded on ICE's commodities exchange. Continental Terminals has three regional locations, two in Suffolk and a third in the nearby city of Chesapeake, Md.
Pacorini's PGS (USA) has a warehouse in Suffolk and RPM Warehousing and Transportation operates in Chesapeake.
The port is a hub for commerce in the Hampton Roads region, an unofficial yet common designation for the Chesapeake Bay, the James and Potomac rivers, and the cities of Norfolk, Newport News, Virginia Beach, and Suffolk.
The Port of Virginia encompasses three entities – the Virginia Port Authority, the Hampton Roads Chassis Pool and the Virginia International Terminals. Coffee enters through Virginia International Terminals' two portals – Norfolk International Terminals and the Virginia International Gateway.
The Norfolk International Terminals, at 567 acres, is the largest terminal at the port. It includes 14 Super Post-Panamax-class quay cranes and a main channel with a depth of 50 feet. It also provides rail access for quick delivery to Midwest markets.
The Virginia International Gateway on the Elizabeth River covers 231 acres, has 12 Post-Panamax cranes and provides fast access rail and national Interstate highways.
Plans are made, approvals are in place and work has begun to expand the port's cargo capacity and channel lanes. A two-phase project already underway calls for expansion of both terminals to better accommodate ULCVs (ultra-large container vessels) and the cargo they deliver.
A $320 million investment in the Virginia International Gateway and $375 million Norfolk International Terminals project will increase its capacity by 40 percent and be able to accept 1 million more containers per year when completed in 2020.
The Norfolk Harbor channels also are planning to expand. Approvals to dredge the 50-foot channel another five feet are in place. At 55 feet, the Port of Virginia will have the deepest channels on the East Coast.
That five-year project, scheduled to start in 2020, also includes widening the passage to at least 1,300 feet, Harris says. A wider, deeper channel will become a major advantage in the future.
The widening will allow two-way channel traffic, an important advantage since the port shares the water with its neighbor, the United States Navy. The "wider, deeper, safer project," as Harris calls it, will allow ULCVs and Navy aircraft carriers – two of the largest vessels on the seas – to pass each other en route.
"It creates efficiencies in the harbor for all types of vessels," Harris says.
Revealed during interviews for this article was a shared sense of mission within the regional coffee industry.
That cooperation extends to labor negotiations. Ewan, Harris and others report labor disputes with the region's longshoremen are very rare.
That sense of partnership also extends to local communities and their local economic development efforts. That's rarely more evident than in Suffolk.
Kevin Hughes quickly lists big-name players in his city's coffee production industry. Smucker's, Massimo Zanetti Beverage USA, Keurig Green Mountain and Peet's Coffee. Then there are the warehousers. Continental Terminals, Pacorini and RPM Warehousing and Transportation. Add a collection of local and regional roasters that help support local retail coffee shops.
Suffolk's rise as a coffee production center began with Lipton Tea, which has been operating in the area for more than 50 years, Hughes says.
With support from Suffolk's economic development office and other local agencies, Lipton's expansion helped trigger additional interest in Suffolk.
"It was an interesting story that a lot of people could relate to because they all drink coffee and tea," Hughes says now.
Massimo Zanetti followed Lipton Tea. So did Keurig Green Mountain. The most recent addition is Peet's Coffee which recently purchased a site for its East Coast roastery. A key factor affecting Peet's decision to build in Suffolk, Hughes says, was the city's strong emphasis in coffee.
The continued growth of coffee production in Suffolk and Hampton Roads supports warehousers and every other business in the industry, Ewan says.
Hughes says the coffee production industry's impact on the community starts at the port and spreads throughout the Hampton Roads region. It's literally in the air.


text:
Who is General John Kelly, Why Did He Resign and Who is The Son 'Robert Michael Kelly'?
The rift between General John Kelly and President Donald Trump created some tensions around the white house. Worst still was the news about the general's resignation which went viral. Trump was the first to announce the departure of his close pal via his twitter handle. Days later, he confirmed that Mick Mulvaney would be replacing him as the chief of staff.
"I am pleased to announce that Mick Mulvaney, Director of the Office of Management & Budget, will be named Acting White House Chief of Staff, replacing General John Kelly, who has served our Country with distinction," Trump tweeted, in part on December 14, 2018, hailing the general as a "great patriot".
Kelly who was a retired Marine general was one of Trump's first pick for the Cabinet. Unfortunately, he hasn't had the same role throughout his administration partly because his rigidity alienated most of Trump's longtime allies, thus making him increasingly isolated both from his duty and from the President himself. Let's learn more about what exactly led to the chief's resignation.
Who is General John Kelly?
John Francis Kelly who is famously known as "the General" or the "Chief" is a retired four-star Marine Corps General who served as the White House Chief of Staff for the U.S 45th President Donald Trump from July 31, 2017, to January 2, 2019. He is a native of Boston, Massachusetts who was born on May 11, 1950, to John F. Kelly of Irish ancestry and Josephine "Honey" (Pedalino) of Italian descent. He went to the University of Massachusetts Boston for his degree and after graduating in 1976, he attended the Georgetown School of Foreign Service for his Master of Arts degree in National Security Affairs. Kelly also obtained a Master of Science in Strategic Studies, from the National Defense University based in Washington, DC.
Prior to his time at the University of Massachusetts in Boston, Kelly who grew up in an Irish-Catholic family enlisted in the Marines in 1970 and was discharged in 1972. He was also commissioned as a second lieutenant on December 27, 1975. He served in the U.S military in the marine division from the early 70s to 2016 although he was inactive between 1972 and 1975. After serving in different positions in the U.S marine – including as the commanding officer of the 1st Light Armored Reconnaissance Battalion, special assistant to the Supreme Allied Commander, Europe, in Mons, Belgium, and many more- Kelly was promoted to brigadier general in March 2003 and by January 31, 2012, he was among those nominated for the post of a General. He was confirmed so by the U.S Senate on July 26, 2012, and by November 19, 2012, he succeeded General Douglas M. Fraser as commander of U.S. Southern Command.
In 2016 when Donald Trump was the U.S President-elect, he nominated Kelly as his Head of Department of Homeland Security at the cabinet-level. He was sworn on January 20, 2017, and he served in that position until July 28, 2017, when he was appointed to serve as the White House Chief of Staff. Officially, Kelly served his country for more than 45 years – first as a Marine and then as the Secretary of the Department of Homeland Security before his appointment by President Donald Trump.
READ 50+ Mind Blowing Coincidences Between Abraham Lincoln and John F. Kennedy
Why did he Resign?
John Kelly replaced Reince Priebus as the White House Chief Of Staff in July 2017. Like some other top officials selected by Trump to serve in his administration, Kelly got the news of his promotion via the presidential tweet. During Kelly's time at the White House, rumors about him and the presidency went viral. Among the most viral news about the two was the tension caused by Kelly's inability to stabilize and control the West Wing.
Obviously, the General who was appointed mainly to bring orderliness to the untraditional White House appeared to have failed especially as some of his decisions strained his relationship with some of trump's most influential outside allies. Kelly probably thought he would tame the president and bring the white house to order through his martial regime but Trump, a renown businessman seemed to prefer a flatter organization for his White House staff and to achieve that, he gradually relinquished Kelly's duties making him "the chief" only in name.
Among other issues that signaled his removal was his handling of domestic violence accusations against the former White House staff secretary, Rob Porter; his shouting match with John Bolton, the national security adviser; his alleged firing of Omarosa Manigault, a White House staffer; and his attempt of asking Trump's own daughter Ivanka to report to him. Before his official resignation on January 2, 2019, Kelly had made jokes of his duty in the White House, adding that his service under President Donald Trump was harder than his previous jobs, including on the battlefield.
Who Is His Son Robert Michael Kelly?
John Kelly is married to Karen Hernest and they have been together as husband and wife since 1976. Together the couple has three children namely Robert, John Jr., and Kathleen. Robert and John followed their father in the Marine Corps but in November 2010, Robert the first Lieutenant stepped on a land mine in Afghanistan and was killed.
Robert who died at the age of 29, was killed while he was leading a platoon of Marines in their third combat deployment. His death came at the time when John Kelly was involved in a controversy when Trump alleged that the former U.S president Barack Obama did not call the families of soldiers killed in action, including Kelly.
Michael Kelly who lived in Tallahassee, Florida, and graduated from Florida State University, was enlisted in the Marine Corps a few days after his graduation. At the time of his death, he was married to Heather Landry, whom he met at Florida State University. John Kelly referred to his son as the finest man he ever knew.
What is Wale's Net Worth and Who is The Current Girlfriend or Is He Married?
MusiciansUwa Echebiri - March 2, 2017
Wale is an American rapper of Nigerian descent. He first rose to prominence in his hometown of Washington DC in 2006 with the song...
READ 10 Facts About Nelson Mandela The Late South African Legend
Pokémon Card Value and Price Guide: How Much Money Are Your Cards Worth Now?
Chioma Uchenwoke - November 12, 2020
In recent years, interest in the Pokémon Trading Card Game (PTCG) has grown immensely as multiple cards have been sold for jaw-dropping prices at...
Is Jamie Clayton Transgender? What Was She Like As A Boy?
Amira Daniel - June 30, 2018
Fame they say doesn't come by age; Jamie Clayton is a clear proof to that fact. The American actress garnered fame in her thirties...
Andrew Cuomo's Net worth and How He Makes and Spend His Money
Ngozika Agu - December 18, 2020
Being a public office holder gives one fame, as well as the opportunity to leave a lasting impact on his society, but what it...
What is Joe Biden's Net Worth and How Does It Compare to Other Past Presidents?
Ngozika Agu - November 28, 2020
Following his victory in the hotly-contested 2020 U.S. presidential election, Joe Biden is set to take office as the 46th president of that great...
How Old and Tall is Vladimir Putin? Is He Still Married?
Adeola Seun - September 30, 2019
Since the end of the 2016 United States Presidential Election, you would have gotten to know a lot about the man believed to be...
How Long Has Vladimir Putin Been The President of Russia?
Among the most important countries in the world, in terms of economic, military and political influence, Russia ranks among the topmost countries in the...
Lauren Southern Bio – Does She Have A Boyfriend and Who Is Her Sister?
Samuel Daniel - July 25, 2019
Talk about a commanding combination of incredible beauty and immense courage and the name Lauren Southern will come to mind immediately. Fearless, bold and...
Who is Columba Bush 'Jeb Bush's Wife'? – 6 Facts You Need to Know
Ikenna Nwobodo - July 24, 2019
The Bush dynasty has become widely known in the areas of entertainment, sports, and business. However, politics still remains their defining field. Having produced...

redpajama_set_name: RedPajamaCommonCrawl


Dodge Ram 1500 Headlight Ledningsdiagram is good choice for you that looking for nice reading experience. We hope you glad to visit our website. Please read our description and our privacy and policy page.
Finally I get this ebook, thanks for all these Dodge Ram 1500 Headlight Ledningsdiagram can get now!


People have been asking us what to do with Dad on Father's Day, and the list of needs is usually pretty specific. Something to do with great food, something for all the family, something fun, something healthy, and something he'll remember.
Because you all love your Dad we've compiled our guide with a little something for everyone. Lots of fun, lots of thrills, and lots of chills. Happy Father's Day y'all!
Give Dad the thrill of the year with a round the island tour from Cayman Islands Helicopters. There's no better way to see the island, and no better way to remember Father's Day with this aerial adventure. Book today.
Get Dad moving early on Sunday with an 8:00am Hot Yoga class at Bliss. Wake up early, brew the coffee, grab a light bite and head down to Marquee Plaza for an hour of stretch n' ting!
Get back to nature at the amazing 65-acre nature preserve. See a fantastic display of diversity in endemic tropical plants, herbs, flowers, wetlands and wildlife. If you're visiting the Cayman Islands get 20% off admission here.
When you watch a movie about the far flung corners of paradise you tend to see some really nice places. There might be a nice boat or two, and there might also be some shimmering water, a bright blue sky, and lots of smiling people eating good food and drinking nice drinks. And that's what Bàcaro feels like. So treat Dad like he's a movie star and head to Bàcaro to live life like you're an A-lister. Book today.
Take an intimate private charter that can offer Dad endless hours of seafaring adventures. Family owned and operated Crazy Crab understand the importance of what Dad's do. So book a tour for Father's Day today.
If you hang out around Rum Point, then you already know the easiest way to eat a meal outdoors: grab a seat at Kaibo Beach Bar and order from their amazing menu. But if you're looking for something that's a little more upscale this Father's Day, you should know about their Rare Rum Supper Club "Father's Night". It's a big deal for a big occasion, and they've thought of everything. From the 6 course menu, to the Kaibo branded hip flask complete with hangover cure. They also serve rare rum and fine wines. Reserve your table today.
They're doing it, so why aren't you? Let Dad Live The Dream with a diving trip with Living The Dream Divers. OK, that's enough dreaming, make it a reality and book today.
Maybe you're hot off the back of the Yoga class at Bliss, or just hot from your Father's Day walk on Seven Mile Beach. Either way you're hot, so head to Island Naturals and chill out with one of their fresh pressed juices. They also serve great healthy snacks, meals, and a range of goodies to get Dad feeling young on Father's Day. Find out more.
After a brief Dad's day planning session you might be hungry and in need of a hearty breakfast to keep you fuelled all day. South West Collective is a fun spot on George Town waterfront where you can roll in wearing your best beachies and eat everything from overnight oats, to their famous breakfast burrito. Find out more.
When you talk about finding the best pizza in Cayman, you're talking about the best pizza in Italy, which means you're talking about the best pizza in the entire world. This much is not up for debate. Also not up for debate is the fact that you absolutely need to treat Dad to the best Cayman pizzas, at least once. In that quest, consider pizza on the stunning waterfront deck of Le Vele and tell us it's not the best you're ever tasted. Book today.
When you think of Father's Day, you probably think of treating Dad to a sedentary day of lounging around watching his favourite movie with a couple of beers. Scratch that thought immediately and book him in for a kite surfing lessons with Kitesurf Cayman at Barkers Beach. Wind in his hair, sand in his toes, and the exhilarating rush of blasting across the ocean propelled by the wind. It'll be a Dad's day he won't forget. And he'll thank you for it too. Book today.
Which Wine Persona Does Your Dad Have?
Is your dad a Rioja Rogue or more of a Châteauneuf-du-Papa ? We realise fathers come in all shapes and sizes, with preferences ranging from the suave whites to bold and muscular reds, or even a delicate rosé. Whatever category your Dad fits in to you'll be sure to find the perfect blend at Jacques Scotts. With stores island-wide there's no excuse to stop in to taste his favourite tipple.
If Dad's not big on discovering the underwater world in person, then suggest a trip to the National Gallery of the Cayman Islands to see images from local and internationally renowned underwater photographers. The stunning collection offers a unique chance to glimpse one of the world's most diverse environments. All in aid of supporting the International Year of the Coral Reef. This is almost as important as Dad.
You know the feeling - it's what makes you dig deep into your chair once you're seated at the table, like you're about to strap in for a roller coaster ride of pure pleasure. It's the thing that makes you say to yourself, "Yes, I absolutely do want another $200 bottle of Barolo, even though it's Sunday and I have to be at work tomorrow." Why? Because that's what Grand Old House does to you, and Dad will love you for it! Book today.
For the man of the hour. Celebrate Father's Day with a watch from Island Jewellers. Whether his style is classic or modern, understated or adventurous, you'll find the perfect timepiece from the Island Jewellers watch collection.
Even if it didn't have on of the most amazing decks in Cayman, Lobster Pot would still be a place we'd send you for any occasion. They serve great food and an excellent wine list, and, when the weather is nice (which it often is), the giant back deck turns into a sublime Caribbean dream as the sun dips slowly behind the horizon. You'll want to spend a full evening here with Dad. He'll love it. Book today.


text:
Business Rates appeals across England and Wales take over one year to resolve
As the result of a Freedom of Information Act, the Valuation Office Agency (VOA) has confirmed that businesses across England and Wales that query the amount they pay currently have to wait an average of 369 days to get clarification of their appeal.
While this clarification period is a significant wait, many companies should thank themselves lucky as their counterparts in South Oxfordshire can wait as long as 526 days – nearly two years. Those faring the best were in Leicester whose average wait is just 281 days.
Paul Easton, National Head of Business Rates at Lambert Smith Hampton, said: "Over the last seven years, the system has been getting progressively worse to a point of almost meltdown.
"Unfortunately the VOA (the Government body which sets business rates) is struggling to get enough qualified staff to do the work, and as a result cannot cope with the number of outstanding appeals. What this means is that businesses that query their rateable value may have to pay significantly more than they should for more than a year, which could drive some businesses under.
"The Government is planning to implement new regulations soon, which is likely to mean that businesses will wait even longer. As such, I would strongly advise all medium to large businesses to speak to a reputable business rates consultant, not just to ensure that their current liability is minimized, but to prepare for the 2017 revaluation. The sooner that businesses can assess the accuracy of their rateable value, the sooner they can join the increasingly long queue of businesses trying to get their rates bill adjusted, should they need to."
Business rates success guide launched for AIM members News The guide is designed to help museum operators understand the complete world of busin...
Good news for museum owners News Valuation Tribunal rules York museums should be valued on net income for business rat...
Consultation on statutory implementation of Check, Challenge, Appeal delivers yet another blow for ratepayers News The latest plans from the Government in respect of the ongoing reform of the business...
LSH acquires Sheffield-based surveying practice Lawrence Tattersall News Lambert Smith Hampton (LSH) has bolstered its presence in South Yorkshire with the ac...
Enterprise Bill enactment News
LSH urges Chancellor to introduce three yearly revaluations News


text:
Search Engine Watch Facts For Kids
There are several Search Engine Watch Facts for Kids. While these are generally safe and educational, they can also be a bit restrictive. For example, kids shouldn't access blacklists containing content that shouldn't be accessed. You can also use SafeSearchKids to make sure your child doesn't access inappropriate websites.
Blacklists contain content that shouldn't be accessed by any means
A blacklist is a list of websites or URLs that aren't supposed to be accessed at all. It's used to stop spam. However, the process of delisting from a blacklist can be difficult. Most blacklist operators have a "delist" page on their websites where you can explain why you'd like to have the content removed.
Blacklists are databases used by free mailbox providers, internet service providers, and anti-spam vendors to identify email spammers. They are compiled based on the volume of emails sent by certain IPs and domains. If your IP address or website is on a blacklist, it means that it's spam. If you're a spammer, you can't send emails to those addresses because they'll be trapped as spam.
Blacklists may be distributed using different methods. One common method is DNSBL, which leverages DNS to send and receive data from lists across the Internet. Other lists may use rsync for high-volume data exchange. Web-server functions, simple GET requests, or more complex interfaces may also be used to distribute a blacklist. Several major companies maintain their own internal blacklists.
Links to inappropriate websites
Safe search tools are useful to protect children from exposure to harmful content on the internet. These tools can prevent a child from accessing sites that contain explicit adult content or promote hatred. However, the question of who decides which content is appropriate for children remains unanswered. Moreover, not all parents agree on what is appropriate for children based on their culture or religion.
While the Internet can be a valuable educational tool for children, many parents are concerned about the potential for their kids to access inappropriate sites. Fortunately, there are several safe search engines that offer pre-screened sites, age-appropriate filters, and content that are deemed appropriate for children.
The Kiddle search engine is a good choice for parents who don't want their child to be exposed to inappropriate content. Though it uses Google's safe search engine, the results are filtered by a human editor. It blocks some common search terms, such as gay and lesbian. It also blocks sites related to suicide, self-harm, and Fifty Shades of Grey.
Linkopedia's Kids section
Linkopedia's kids section on Search Engine Watch is packed with resources for children. A search box allows you to find anything you're looking for, or you can browse through categories to find the perfect resource for your child. You can find everything from nursery rhymes to homework helpers, to games and music. The site also provides an interactive story hour, a fun search engine for kids, and much more.
SafeSearchKids
Safe Search Kids is a Google safe search engine that turns on parental controls and filtering for children. The filters can block videos and images and can warn parents of any inappropriate content. Safe Search Kids is available for both iOS and Android smart phones, and for Windows and Mac computers. It can block specific websites and apps.
This search engine works with a wide variety of devices, from smartphones and tablets to Kindle Fires. You can easily install the app on your child's device and set a filter that locks out inappropriate sites. The app will also offer safety tips and guide videos for kids. It also includes Google Safe Search, so you can feel confident your child is safe when using it.
Safe Search Kids features an autocomplete feature that helps kids type the right terms to get relevant results. It also features popular topics aimed at kids in grades K-8. It is a great alternative to parental control apps that may not be able to filter out search thumbnails from sites. The app is designed to ensure that children are exposed to only safe content.
Kids are fascinated by the World Wide Web. However, not everything is suitable for them. It is important to limit their access to the web. By setting a time limit, parents can help kids gain media competency. Parents can also restrict the age and type of content their children should access. Safe SearchKids is an excellent way to limit the risks of inappropriate content on the internet.
Safe Search Kids also has filters to prevent harmful sites from appearing on their site. They have articles on internet safety and healthy online behavior. These articles are a great resource for young children to use while surfing the web. SafeSearchKids is a great option for parents worried about their children accessing inappropriate sites.
Kids can also use Kiddle, a safe visual search engine powered by Google. It uses Google SafeSearch and CustomSearch to filter results. Explicit content is removed from search results. However, it is important to note that SafeSearchKids is independent of Google Inc.
Latest - Search Engine Watch
Latest - Search Engine Watch is a great tool for keeping up to date with the latest in search marketing. The app features a community of search marketing professionals and incorporates social media sharing from Twitter and Facebook. Users can create tribes, build a community, and stay up-to-date with industry news. On the right-hand sidebar, you can see what's trending.
Search Engine Watch is a great resource for those looking to boost their online presence. They feature a wide range of articles on topics ranging from creating a website to starting a business. They cover all aspects of each topic and provide the latest news on digital marketing. There are also guides on how to optimize your website for maximum visibility, and actionable steps that will help your online presence grow.
If you want to stay on top of search engine marketing, you need to know how search engines work. Search Engine Watch offers articles and information on SEO, keyword research, and search engine placement. Its community section allows you to interact with fellow users and share tips and ideas. They also organize workshops where you can learn from other people's experiences. There's no better way to learn about the industry than from those who are on the inside.
As a member, you can access exclusive events and forums, including Q&A sessions and forums. You'll also receive weekly newsletters and online training. Even if you're not a member, you can still browse the site and comment anonymously. You can even write commentary using your social media accounts.
When optimizing blog posts, you need to consider the readability of the content, its formatting and page speed. Your content must be comprehensive, informative and easy to scan. In addition, links to authoritative sites should be relevant and useful for the readers. If you want to rank well in Google's search results, you should optimize your content to make it load faster.
Search Engine Watch publishes multiple blog posts every week. They are written by experts in the industry and are an excellent resource for SEO practitioners. Search Engine Land also publishes multiple posts a day, and is an excellent source for SEO news. Another great SEO news blog is Search Engine Journal. Both blogs have been around for a few years.
Thousands of SEO blogs exist across the web. Some are hubs run by digital marketing agencies, while others are personal blogs by individual SEOs. Using keywords strategically throughout a blog post is important for SEO. Long-tail keywords are more likely to generate website visitors who will read the entire post and potentially convert.
Search engine optimization is an extremely complex field. Many of the secrets to successful SEM are hidden within the algorithms of the major search engines. In order to succeed, SEO experts are constantly testing new theories, monitoring updates, and building bodies of knowledge. Here are 20 SEO blogs to follow for the latest news in the SEM world.
In order to list events on your search engine results page, you need to include structured data. This can be achieved with a number of tools. A data highlighter plugin, for example, will let you add events to your site without editing HTML. Alternatively, you can use a search console API to automatically pull data for events.
These tools provide valuable insights into the world of search marketing. In addition to helping site owners and marketers, they also provide information and tips on search engine submission, placement, and marketing. They feature articles on industry news, changes to search engine algorithms, and SEO tactics. In addition, Search Engine Watch also includes information on how to create better pages and optimize HTML meta tags for improved rankings.
If you're looking to learn more about search engine optimization, Resources for Search Engine Watch is an excellent resource. The site features articles on topics like building a website and starting an online business. Each article covers all the important aspects of each topic. It also covers the latest news and trends in digital marketing. In addition, the site has a resources section with actionable steps you can take to improve your online presence. The site also offers Tech Talks, which are informative sessions on technical issues related to website creation.
Resources for Search Engine Watch include a large collection of articles, websites, and search engine reviews. You can also access a bibliography that provides a wealth of information on search engine optimization. Some of these resources are available to fee-based subscribers. The search engine watch website also offers a subscription service.
A recent study conducted by Stats for Search Engine Watch found that nearly half of marketers track paid search listings. That's an astounding number, as it represents a quarter of online advertising spending - up from 10 percent just two years ago. But how many marketers actually measure their results? In fact, only 16 percent use conversion tracking or ROI metrics.
It's no surprise that Google leads the pack with 86.6% of search engine market share - Yahoo and Bing each hold less than three percent. Google's popularity is largely due to its UX-based business model and the algorithm it uses to deliver the best results to its users. Today, over 7.8 billion searches are conducted each day, and this number is rising rapidly.
Knowing the factors that affect your site's ranking can help you craft a sound SEO marketing strategy. Google updates its algorithm constantly and changes its ranking optimization factors in response to user value. By tracking your site's SEO statistics, you'll know exactly which pages are getting more traffic and which ones are getting lower rankings. By tracking SEO metrics, you'll be able to optimize your site for user value and create a discoverable site.
Users tend to look at only one or two results on the first page of Google. About three quarters of people only look at the top half of search results and don't go past the first page. Only a quarter will click on the second page. When people are searching online, they are also judging meta titles and descriptions.
How Craigslist Sacramento Ca Can Help You
Popular Baby Names of 2016
A Mydish
Shorting a stock
Disadvantages of Craigslist Rochester NY
Whatsapp Web o 2023
How to Handle Amazon A-to-Z Claims
The Xian MA60 Turboprop Airliner - (2022)
March Madness 2021 Schedule Revealed
2391 Roscomare Rd Los Angeles CA 90077
How Much Christmas Lights Do I Need?
Finding the Best Car Insurance For High Risk Drivers
What You Need to Know About the Mozilla Firefox Browser
Careers at the Foreign Commonwealth and Development Office


Launched in August of 2016 and head-quartered in Sandton, South Africa- with an office in Cape Town, LinkdPro is a trusted community marketplace for companies to list short term project requirements and get the best independent consultants to execute them.
Whether corporate training for a week, due diligence for a few months, or an acquisition of a year or two, LinkdPro connects South Africa's top independent consultants to unique and exciting project opportunities. With a great presence in sub Saharan Africa, LinkdPro has signed up world class consultants with skills honed at some of the largest consulting firms on the continent. And with world-class customer service and a growing community of JSE listed clients, LinkdPro is the easiest way for companies and consultants to connect with each other.
It was this vision that has brought together the core of the LinkdPro team; Lerato Manaka - Head of Business Development, Eugene de Beer - co-founder & CTO, Scelo Makhathini - co-founder & CEO. Together the trio has managed to bring some of South Africa's most prolific companies and top consultants together; granting them a platform to solve the country's most challenging business requirements.


Heading out of Yamada, the ups and downs continued. On the plus side, it did feel like the landscape was starting to mellow a bit. The climbs weren't quite as steep and the passes not so high. There were also more tunnels which cut out a lot of the hills. Even though they were often long and a bit scary at times, they were a welcome relief both from the uphills and the sun.
The one big climb of the day came after lunch, and it was a big one. I definitely struggled in the afternoon sun and was lagging well behind Clare as she powered on ahead.
Reaching the pass, we did at least have a nice long downhill which earned us a good number of kilometres into the city of Ofunato. We opted to camp somewhere in the city rather than continue over another pass.
Dinner was pizza and a couple of beers next to the harbour at a small restaurant in a group of prefab buildings. It seemed most of the area had been levelled by the tsunami but was slowly being regenerated.
As is our style these days, we retired to bed early. We found a shrine at which we thought we might be able to pitch our tent, but no one was around to ask permission from. Eventually we settled on a small park in a quiet residential area which, apart from the mosquitos, gave us a good place to spend the night.
Early to bed, early to rise, we were up and packing up by around 6 the next morning. A kind lady saw us from her house, so came to say hello and give us a couple of cans of coffee and some pickled veggies. Feeling genki (often used Japanese term, meaning healthy, energetic, happy etc) and with an early start, we made great time and progress through the morning.
Into a new prefecture, Miyagi, we had done 30 km by our morning coffee break. By lunch time, we'd clocked up 75 km and were on for our longest day of the tour so far.
We spotted a michi no eki and onsen on the map near Ishinomaki, about 30km away, and aimed for that for the day's target. We were onto much flatter ground and our cruising speed had increased dramatically so reached our goal by about 3 o'clock. 107 km for the day. The onsen was heavenly after a couple of hot sweaty days so we took our time and then enjoyed the essential post-soak ice cream. Just opposite, we found a perfectly manicured park where we cooked our dinner and pitched our tent for the night.
Day 12 was a very easy one. We had arranged to meet with a friend, Dom, in Ishinomaki. We met Dom last year when he was on his own trip, by motorcycle, from Worthing in England to Japan – Little Dom's Big Adventure. He made a series of really great video blogs over the course of his ride. Definitely worth checking out his YouTube channel. He stayed with us for a night in Hokkaido and we've kept in touch since. He's now moved to Ishinomaki to teach English and kindly agreed to host us for the day and night in his palatial shared pad – the Somako House.
We spend the afternoon relaxing, doing some washing and resting our legs. We had a quick explore of Ishinomaki, another city ravaged by the tsunami.
Around the city were dozens of statues of manga characters which looked to be popular attractions for visitors. So naturally we posed for a picture too.
Dom and his housemates fired up a BBQ with fresh seafood which we enjoyed that evening over a few beers. The lie-in the following morning was also welcomed!
Leaving Ishinomaki on Thursday around midday, we rode out into pouring rain for the 50 or so km to Sendai. The rain was on and off for the entire afternoon but the wind was calm and we made quite good time. We followed our old friend Route 45 for most of the way and then switched to Route 8 for the last stretch into the city.
We had arranged to stay with a Warm Showers host, Yuta, who lives in a small apartment very close to the city centre. The traffic coming into Sendai was heavy but we negotiated the busy streets and found his place easily. He welcomed us warmly and showed us to an immaculate guest room. We chatted about cycling in general, and particularly the year he spent cycle touring from California down to Peru.
Leaving our panniers at his apartment, we jumped back on our bikes and went downtown for a quick look around and some dinner. We were stoked to find a soup curry restaurant. Soup curry is a Hokkaido speciality and probably our favourite food. It's very rare to find it outside Hokkaido so it was a real treat!
We rode back to Yuta's to plan our route through Fukushima for the following week and then had an early night, hoping for better weather in the morning.


text:
Iceage continues busy year with new single
by Ben Weinstein
Iceage probably doesn't want me writing about them; at the very least they'd be wary, and rightfully so. Since the Danish band released their debut album in 2011, most journalistic engagement has been predicated on the knowledge that they're not interested in engaging with journalists. Looking exclusively at the written reception to Iceage's past four years' worth of work, their mistrust is justified increasingly by every comparison made, accurately but lazily, between them and Nick Cave, or The Gun Club, or any post-punk band that has dared lay fingers on a piano. "I see where they're coming from," singer Elias Bender Rønnenfelt diplomatically divulged in an interview with DIY Mag several years back. "But that's kind of watering it down a little bit."
Years later, Iceage still doesn't care how much their new song "Broken Hours" may or may not sound like Nick Cave or The Gun Club, and I don't care to make those claims. What's more intriguing is that Iceage's new song sounds like Iceage, but not necessarily the Iceage that released their fourth LP "Beyondless" earlier this year. While that album is the band's most sonically varied to date, incorporating everything from Sky Ferreira-assisted post-punk ("Pain Killer") to horn-heavy vaudevillian explorations ("Showtime"), "Broken Hours" still, somehow, feels like an outlier from that collection of songs.
The intuitive explanation would be that "Broken Hours" is a B-side, and its exclusion from "Beyondless" illustrates that Iceage are aware of its dissimilarity. Closer to the truth might be the fact that "Broken Hours" is not, strictly speaking, a new song. The band has been playing it live since 2015 — less than a year after their third record "Plowing Into the Field of Love" was released — and a live video from Pitchfork Music Festival that summer captures them performing it as "Untitled." Whatever the case, "Broken Hours" is a welcome addition to Iceage's recorded catalogue of claustrophobic rockers.
Guitarist Johan Surrballe Wieth's sinister, drawn out chords in the intro immediately evoke a previous preoccupation of Iceage's: the American South. The band's "Plowing" single "The Lord's Favorite" has been labelled everything from "soused cowpunk" to "falling-apart rockabilly," indicating an abandonment of previous hardcore and noise rock leanings in favor of something bordering on country. The song's video embraces some amount of Southern iconography, or at least tropes of Las Vegas-esque excess; boots kicking up dirt and dice in martini glasses flash before us as Rønnenfelt finds God, singing understatedly yet charismatically over Jakob Tvilling Pless' bouncing bassline. Even though they're guzzling "one-hundred Euro wine," it doesn't seem too big a stretch to read it as three dollar whiskey.
If "The Lord's Favorite" saw Iceage savor Southern comfort, or, you know, just have fun getting drunk with friends, "Broken Hours" veers closer towards the South of William Faulkner's novels or Tracy Letts' plays — in other words, a world not quite so fun, nor hedonistic. That's not to say the song is lacking in personality, of course; the verse of "Broken Hours" swaggers in ¾, carried largely by an entrancing bassline and drummer Dan Kjær Nielsen's relentless reliance on his ride cymbal. "At times it's a struggle to forget/At others it spills right out of my head," Rønnenfelt bemoans as the guitar fades out, only to rejoin moments later with an overpowering intensity. The punishing energy of the chorus makes it feel like "Broken Hours" is a millisecond away from splintering apart, yet Rønnenfelt's vocals rise above all and find relief in the uproar: "It lingers on, by in waves/Broken hours alleviate." He reaches such a melodic high point as he twists the word "alleviate" around his finger that we must believe Rønnenfelt finds genuine relief in the chaos — after all, it's where Iceage have traditionally felt most at home.
Egyptologist to teach archaeology in spring
Smoking Policy "Know Your Rights" Forum
Latest from Arts
Dance X explores virtual format, dance on film
Commentary: legal win for Taylor Swift reveals evolving music industry
"Borat" sequel raucously critiques American culture, politics
"Song Exploder" poignantly examines artists' musical processes
Female candidates fight gender roles in advertising


text:
"Thus spake Markandey Katju!"
Controversy is chasing Retired Justice Katju.His sermons to the Fourth estate do not seem to end. Deprecating the prevailing self-regulatory mechanism , he wants the electronic media, to be accountable to the PCI . Former CJI J S Varma says: "irresponsible talk is best ignored.". Ambika Soni and Katju ji are on the same page. She sermonizes the Media to sensitise itself. A perfect Quid pro quo deal,it is to implement the Congress's mandate. Katju ji tries to justify his viewpoint by stating that since the lawyers are accountable to Bar Council and Judges could be impeached by the Parliament, the electronic Media must be accountable to the PCI or the Lokpal. This is specious and misleading. The menace of 'Paid Journalism'is certainly a stigma on the Fourth estate.But, why paint the entire Media as corrupt? Why not file defammation suits in courts against the Media. Making the Press subservient to the Executive is liable to be misused and manipulated by the Executive. This will be worse than 'Paid Journalism'. Let us not forget the contribution made by the print and electronic media in exposing successive scams. Demand for Media accountability is anathema to Freedom of Speech flowing from the Right to Life, enshrined in the Constitution of India.
59b43b25-7f9d-46ff-8740-f6ae17a74ca7|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
CBI : From best agency to a 'Political Harlot' ?"
The comparison between two former Directors of CBI D P Kohli ( 1963-68) and D Sen (1971-77) is not apt. One must appreciate the opposite scenarios in which the two functioned. Consider the scenarios. While Kohli as the founder Director of CBI in 1963 functioned in a comparatively non controversial environment under two successive premiers: J L Nehru and L B Shastri, there was no political interference during those halcyon days of Indian bureaucracy. The paradigm shift in work ethos took place when Indira Gandhi took over the reins in 1969. The corruption was re-defined. The CBI's erosion of its credibility reached its zenith during the national emergency declared by Madam Gandhi (1975-77). The CBI became politicised. The Shah Commission of Inquiry indicted the CBI for allowing itself to be misused as an instrument of harassment of innocent people by Indira Gandhi and all- powerful Sanjay Gandhi assisted by 'chaatukaars'. All of them are now occupying high positions in the GoI and the Congress party by switching their loyalties. Both acted like bulldozers while seeking compliance of their orders . How could D Sen , the then Director(CBI) , an officer of great professional competence who inspired fear and awe ,be expected to oppose the dictators during the national emergency when the entire clan of high profile IAS officers, as also observed by the Shah Commission, "worked as agents of GOI and zealously collaborated with the authoritarian regime" ? This is how the politicization of CBI started. The IAS officers chose to prostrate when asked to bow before Indira-Sanjay duo. How did the CBI become a convenient tool in the hands of present day politicians to armtwist the bureaucrats and politicians , is anybody's guess
d53c6688-ee69-41f0-bc70-1a6e9f9df737|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Caste in Census is an Electoral Fraud
I am convinced that inclusion of Caste in Census 2011 is an Electoral Fraud! The views supporting caste reservations in India are subjective. Continuance of reservations based on anomalies of the past is fallacious.. A Civil society does not permit inequities. Our present society is 'unequal'. No purpose is served by repeating the atrocities allegedly perpetrated by the high castes( One wonders who coined this phrase in the face of sub-castes within castes) on the lesser mortals. Lord Krishna ( A yadhuvanshi ) is worshipped by all Hindus irrespective of their castes. The triumvirate of Mulayam, Sharad and Lalu must ponder over this before playing the OBC card. The 'yadavas' are among the most affluent and influential classes. Persons belonging to the so-called high castes are presently performing the most menial jobs.Ironcally, the creamy layers in SC,ST and OBC have been blocking benefits to the less fortunates in their categories. How could one forgive (Murtidevi) Mayavati? The assets owned by her are mind-blowing. Instead of building class rooms for dalit poors in UP , she erected hundreds of Statues of dalit icons- all at public cost. There are anomalies galore in the prevalent caste system. The 'Vaishyas' in Bihar are listed as OBC, but as high castes elsewhere. The "Muslim kayasthas" are unjustifiably listed as OBC in UP due to vote bank politics. The Gurjars are OBC in J&K. They are agitating for ST status in Rajasthan much to the annoyance of the Meenas who are allegedly eating into the shares of the STs of the North-east. An all-round confusion has been created by the caste-driven politicians. Against this background, will the inclusion of 'Caste' in the Census questionnaire not open a Pandora 's Box of divisive politics in the country. The memories of post- Mandal violence across northern India is a historical reality. Please watch my words. This time,the scope and dimension of violence will be far more ferocious.It is futile to expect any support from the myopic , self-seeking politicians. The Judicial pro-activism, if at all, will be struck down by legislative arrogance . How to save the country from the possible caste war that may reach a flash point in the aftermath of the Census report? An "Intellectual Revolution" is the need of the hour.The Egg-heads of the country must unite and rise above petty politics ! The Editors, journalists, writers,reporters,poets,the electronic and print media,the social activists, the sociologists and eminent social thinkers must endeavour to create public awareness against the evil of casteism.There must also be a debate on the need for "disenfranchisement" in respect of SC,ST and OBC categories, if the reservations are to be continued. Same logic must apply to religious minorities. This will make them self reliant and not dependent on wily politicians.It is now or never!
ee5e945c-c29c-488b-b3a7-0fa2702289c7|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
"Good governance in India ; a paradigm shift !"
J L Nehru, a liberal democrat, governed India by allowing the public sector to attain "commanding heights of economy" to build infra-structures. Sardar Patel , India's Bismarck, ruled with an "iron hand". Lal Bahadur Shastri governed with his "modesty and honesty". Indira Gandhi ruled through "Nationalization" and later through "Emergency', that proved her waterloo. Sanjay Gandhi, the extra-constitutional authority during the emergency , ruled through " Coercion". Rajiv Gandhi governed through "Missions". Morarji Desai governed through his " Obduracy and the infamous Urine therapy". P V Narasimha Rao ruled by exchanging "Suite-cases of black money". H D Deve Gowda , a Prime Minister by chance, ruled by upholding " liberalization". Atal Behari Vajpai governed through "delegation of power" to his close confidants both at "home" and "office". Dr Man Mohan Singh, the de jure PM, governs through "Groups of Ministers" . Sonia Gandhi, the de facto PM, rules by " back-seat driving" to avoid accountability. States' Chief Ministers rule by building infrastructure (including parks and memorials) through "Corruption" and by playing the Dalit, Hindutva and minority cards". Can the Aam aadmi still claim with pride: "Mera Desh MahaanjQuery15205886916291642998_1339834085652?"
c26747c2-1dc1-44d2-b70a-4fa15908461e|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
"Say good-bye to deadwood in Indian bureaucracy!!!"
The deadwood in the Indian governmental bureaucracy is like the non-performing assets. The nationalised Indian banks have failed to overcome this problem on their sides due to lack of pro-active approach. At least, the GOI must lead by examples by chopping off the deadwood by strengthening its performance appraisal system and applying it effectively before it is too late. Its application must be across the board and irrespective of the organised Service to which the laggards belong. This will cut down the existing strength of bureaucracy by 40% and removing corruption in the process. Unfortunately, we can't apply the same guillotine to the political executive due to compulsions of real-politik !!!
1d438772-9b36-4aac-a693-6a94ffa83bdd|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
An Appeal to Bal Thackeray!!!
I wonder whether Bal Thackeray has made any contribution to the Indian society. It did not take me long to conclude that as a narrow-minded individual,he has always generated hatred, disharmony and friction among the peace-loving motley of indian communities co-habiting in cosmopolitan Mumbai. He is merely wasting his time and energy in building Berlin walls within Maharashtra. Where were his paper tigers hiding during the 26/11 attack at Mumbai? His excessive "patriotism" borde-ring on "Xenophobia", is misplaced. Both Shiv Sena and the MNS workers must dedicate themselves to the cause of the poor slum dwellers of Mumbai instead of sitting in the air-conditioned comforts of their ivory towers! Let them not tarnish the name of the great Shivaji Maharaj! The country already has enough problems at its hands which the incompetent Government of India, is unable to cope with. One more appeal. Let Bal, Udhav and Raj Thackeray refrain from denigrating the achievements of any artistes or cricketers by spewing venom against them through "Saamna". It is strange that even at this age and his failing health, Bal Thackeray is not showing sign of maturity by making plebeian statements against others. He has deservedly earned the epithet of "bad cholesterol" among Mumbaikars!
6ce07f3a-02dc-423c-a9c7-15ce937c77f6|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Why Food Security For MPs ?
A seemingly innocuous statement by Sharad Pawar on Dec 20, 2009, attributing the existing price rise of consumer goods to 'global warming' jolted me into writing this piece. Sheer baloney, was it! The price inflation during the past two years has been phenomenal. Does it not demonstrate GOI's failure in controlling price rise? Will the country's economists including the PM agree with such frivolous and escapist statement of Agriculture minister on 'Food Security'? Let us spare a word about the BPLs (37% as per GOI estimate) . They do not get two square meals a day. They merely get election promises on 'Food Security' in terms of UPA's mandate. On the contrary, the mollycoddled MPs who represent them get total' food security' through highly subsidized canteens located inside the Parliament House, its Annexe and the Library. Is this concealed subsidy justified? One feels such food security to MPs in the temple of democracy is a blot on the Parliament. How could these parliamentarians digest food at such abysmally low price and debate the issue of 'Food Security 'for the down-trodden. This is hypocrisy at its worst!. Worse still, enjoying virtually free lunches and dinners by the staff and officers of the Lok Sabha and Rajya Sabha Sectts looks to me down- right vulgar, to say the least! I have personally seen them shamelessly enjoying the 5-Star grub during the deliberations of the Standing Finance Committees attached to various ministries. All this at the tax-payers' cost. Will the Speaker, Lok Sabha and Deputy Chairman, Rajya Sabha jointly ponder over these matters seriously in a transparent manner and order immediate withdrawal of concealed subsidies to Parliamentary food jaunts. These heavenly canteens must also be declared in-accessible to the Parliamentary Secretariat babus and Security Staff. Let the Parliamentarians cutting across party lines lead by examples and boycott these canteens, run by the Railways, if they have the slightest concerns for the poor.
31e67c6d-fc34-4bcb-94fe-5b51647ada72|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Defending the indefensible on caste basis!
Buta Singh's ugly defence of Chief Justice Dinakaran of Karnataka High Court on caste considerations against allegations made by a body of advocates is most reprehensible particularly when his own conduct has been under cloud and investigations by CBI in the bribery scam is underway. The misuse of high Constitutional Office by him in promoting the illegal activities of his son, calls for severe punishment under the law of the land. If he is subjected to Narco-analysis test, more startling truths will come out. The CBI is expected to finalise investigation and book the culprits. Buta has habitually played either his minority card or the caste card, whenever his misdeeds were exposed. Law of the land applies uniformly to all and sundry irrespective of their religions, castes, political or ideological affiliations. The self-styled representatives of Scheduled Castes have done nothing for the uplift and empowerment of the weaker sections they pretend to represent. They have exploited them as part of vote bank. The likes of Buta Singh wish that the SC group remained perpetually weak so that their monopoly continued for ever. Baba Bhim Rao Ambedkar, one of the greatest visionaries, India has produced, who drafted the Indian Constitution, never vouched for reservation for SC/ST in perpetuity. He visualised its deleterious effect on the minds of the beneficiaries, in the long run. The decidennial continuance of reservation for SC/ST and now OBC, has divided the country on caste lines besides causing avoidable heart burnings. Is it not the high time that the policy of reservation is jettisoned once for all and all citizens treated as equals, both in letter and spirit? Is this possible without a strong political will? Alternatively, another view, which is fast gaining momentum, is that persons belonging to SC/ST/OBC must be divested, by legislation, of all benefits, bestowed by the Constitution of India, once they are convicted under the law of the land! What could be the legal implications? Imagine a hypothetical scenario where there is no distinction based on class, castes and religion. And, no reservations. Would the five star icons like Sonia and Rahul Gandhi still visit, share meals and stay overnight with the poor dalits under the thatched roof of their leaky homes? Perhaps, never! This will always remain a Utopian dream! Never a reality!
a07a998c-e90a-49a4-ac27-cf21aeb2beb7|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Heart burning in CBI is justified !!!
Though complimentary to each other, there is poor chemistry between the Investigation and the Prosecution wing of the CBI. This is reflected in the poor success rate of this premier agency before the courts. While the investigation wing undertakes the tedious job of gathering clinching evidences, the job of the Prosecution wing cannot be under estimated. Effective presentation of cases before the CBI- designated trial courts ,Appellate courts and even the Supreme Court, is a significant exercise that is crucial to the final outcome of the courts' judgments. During my service career , I had personally followed up this case. It is understood that though the proposal for grant of 25% incentive to officers' of Prosecution wing ( on the analogy of similar incentive admissible to officers of Investigation wing of the CBI) was supported by DOP&T and its Financial Advisor to Min of Finance, the same was summarily rejected by MOF .Does this not amount to perpetuation of discrimination for no valid reason. DOP&T is headed by the PM. We have now a more experienced FM. I suppose, the UPA-II ( after electoral detoxification of UPA-I ) is considered more transparent, just and fair. May I request the Prime Minister and the Finance Minister through this website to intervene into the matter and remove all kinds of discriminations and anomalies under the existing dispensation
06bf2452-479b-4f8e-b08a-15829576874e|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Ministers' baggage of personal staff must be truncated!!!
It is high time that the GOI cut its umbilical cord with the colonial past. Let the GOI Ministers no longer, be treated like Indian princes receiving fat privy purses (Read as salaries), a large number of freebies and a still larger complement of Personal Staff, to boot. Annual expenditure on Ministers' personal staff runs into crores of rupees with no matching benefits. On the contrary, it facilitates corruption. Ghost man-power is 'employed' by ministers and salaries due to them pocketed. These are hard realities of the present political Executive of the Union of India and the federal states. Ministers heading economic and social sector ministries like Coal, Petroleum, and Heavy Industries, Banking, Finance, Commerce, Agriculture, HRD, Rural Development etc mis-use public utilities (including PSUs and PSBs) as personal fiefdoms utilizing their unlimited manpower, transport facilities etc. Their personal staff are deployed to facilitate misuse of powers. A minister who is confident enough to attend to official work, does not require any PS or PA. He /She is free to summon his ministerial officers for briefing or seeking clarification on any point. The fact that a large number of officers belonging to organized services vie for appointment as Private Secretaries to richly endowed ministers bear testimony to the lucrative business that it is! Honestly and seriously speaking, the requirement of a Minister in GOI can be met by engaging at the most three persons instead of the existing over ten. This includes a peon who should also be an Usher. The Prime Minister as the Cabinet Minister-in-charge of DOP&T must put a full stop to the existing practice of Ministers poaching ministries' officers/ staff for deploying in personal section on informal basis, while pocketing the salaries earmarked for the regulars! This secret, I bet, may not be known to many Civil servants!
bc26a3bb-e472-4da7-8c73-8b2edf0b26f4|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04


Dried rose petals make for a simple yet refreshing tea all year round, perfect for both summer & winter. These edible rose petals can also be used in a range of baking recipes & decoration, including muffins, sweet bread and citrus-based cakes. Not only that, they can also be used as a 100% natural & compostable confetti.
Edible rose petals have a light flora aroma that makes a delicious and delicate rose tea when infused with hot water - perfect for soothing stress away. Look beyond tea and dried rose petals can be used for decorating beautiful, elegant cakes for the perfect finishing touch to any creation. Sprinkle on cupcakes, red velvet chocolate cake and even banana bread infused with rose water. You can even add to fruit salads and mixed green salads for a refreshing summer lunch that will satisfy the sweet tooth.
Edible rose petals appear in both sweet and savoury dishes and can also be used when cooking Middle-Eastern inspired recipes such as rich stews served with fluffy quinoa or whole wheat couscous.
Think outside the box with edible rose petals and try making your own rose water, potpourri or even homemade lotions and face masks for a truly natural way to make self-care treatments at home. Buy edible rose petals online or dried rose petals as they are also known, in a range of sizes from 50g to 4kg depending on your needs.