text:
define(["dojo/_base/declare", "ppwcode-util-contracts/_Mixin",
        "dojo/store/util/QueryResults", "dojo/store/util/SimpleQueryEngine",
        "dojo/_base/lang", "ppwcode-util-oddsAndEnds/log/logger!" /*=====, "./api/Store" =====*/],
  function(declare, _ContractsMixin,
           QueryResults, SimpleQueryEngine,
           lang, logger) {

    var ERROR_ALREADY_IN_STORE = new Error("Object already exists in this store");

    var DataWrapper = declare([], {

      id: null,

      // data: Stateful
      data: null,

      constructor: function(id, /*Stateful*/ data) {
        this.id = id;
        this.data = data;
      },

      toString: function() {
        return this.data.toString();
      }

    });

    var StoreOfStateful = declare([_ContractsMixin], {
      // summary:
      //		An in-memory Observable object store like dojo/store/Memory wrapped in dojo/store/Observable,
      //    but with the following differences:
      //    1) We don't change the objects that are kept in the store. If you are not very
      //       careful, dojo/store/Memory inserts an "id" property for its own benefit,
      //       whose behavior depends on chance (random).
      //    2) We are aware of Stateful.
      //       If an element changes, we also send changed events. You do not have
      //       to re-put.
      //    3) removeAll, loadAll
      //    4) You need to inject a getIdentity function. It must work on all objects
      //       that ever were in the store or will be in the store, independent of the store.
      //    5) If the data provided at construction has an `observe` method (i.e., it is
      //       a QueryResult from an Observable), we watch that changing too.
      // description:
      //    On development we immediately need constructor, put, removeAll, loadAll, and query.
      //    getIdentity is needed for Observable.
      //    get and remove are optional.
      //    Query needs an array to be supplied. It therefor is wasteful to keep an index, which
      //    only helps with get and remove.
      //    idProperty is wasteful and stupid. We kill it.
      //    We wrap the real objects in a helper object, to keep track of the watchers of
      //    Stateful objects.
      //    If getIdentity changes, all bets are off.
      //
      //    Before you throw away the store, you must call removeAll, so that
      //    we can clean up listeners. Otherwise, you will have a memory leak.
      //
      //    The result is intended to be wrapped in dojo/store/Observable. We cannot do that
      //    for you: the inheritance chain would be broken.
      //
      //    Based on dojo/store/Memory

      _c_invar: [
      ],

      // _data: Array
      //   The internal representation of the data
      _data: null,

      // idPropertyDerivation: Function
      //    Stateful --> String
      //    Derives a unique id from a Stateful object as argument.
      getIdentity: null,

      // queryEngine: Function
      //		Defines the query engine to use for querying the data store
      queryEngine: SimpleQueryEngine,

      // noChangeProperties: String[]
      //    Array of property names whose values are not considered a real "change" the StoreOfStateful should
      //    propagate to observers.
      noChangeProperties: [],

      _wrap: function(/*Stateful*/ s) {
        this._c_pre(function() {return this.isOperational();});
        this._c_pre(function() {return typeof this.getIdentity(s) === "string"});

        var thisStore = this;

        function addWatcher(wrapper) {
          var watcher = function(name, oldValue, newValue) {
            // on change, see if the id has changed
            // if it has, signal removal, and a new addition
            // if is has not, signal change

            if (thisStore.noChangeProperties && thisStore.noChangeProperties.indexOf(name) >= 0) {
              // we don't consider a change in noChangeProperties as a true semantic change; NOP
              return;
            }
            logger.trace("store: " + thisStore + " - got event from changed element: ('" + name + "', " + oldValue + ", " + newValue + ")");
            var oldId = wrapper.id;
            var newId = thisStore.getIdentity(wrapper.data);
            if (oldId != newId) {
              logger.trace("id changed; updating id; store will notify removal and addition");
              logger.error("IDENTITY OF AN OBJECT IN A STORE_OF_STATEFUL CHANGED. This gets Observable of its rockers. It should not happen. (" +
                "propertyName: " + name + ", oldValue: " + oldValue + ", newValue: " + newValue + ", oldId: " + oldId + ", newId: " + newId + ", data: " +
                wrapper.data + ")");
              // TODO replace this branch with an exception if it truly never occurs
              wrapper.id = newId;
              if (thisStore.notify) {
                thisStore.notify(null, oldId);
                thisStore.notify(wrapper.data, null);
              }
            }
            else {
              logger.trace("id did not change; store will notify of change in element");
              if (thisStore.notify) {
                thisStore.notify(wrapper.data, oldId);
              }
            }
          };
          //noinspection JSCheckFunctionSignatures
          wrapper.watcher = wrapper.data.watch(watcher);
        }

        var result = new DataWrapper(thisStore.getIdentity(s), s);
        addWatcher(result);
        return result;
      },

      constructor: function(options) {
        // summary:
        //		Creates a store of stateful objects.
        // options: dojo/store/Memory
        //		This provides any configuration information that will be mixed into the store.
        //		This should generally include the data property to provide the starting set of data.

        var thisStore = this;
        if (options) {
          Object.keys(options).
            filter(function(key) {return key !== "data";}).
            forEach(function(key) {thisStore[key] = options[key];});
        }
        if (options && options.data) {
          thisStore._data = options.data.reduce(
            function(acc, element) {
              acc.push(thisStore._wrap(element));
              return acc;
            },
            []
          );
          if (options.data.observe) {
            options.data.observe(
              function(element, removedFrom, insertedInto) {
                if (insertedInto === -1) { // removed
                  thisStore.remove(thisStore.getIdentity(element));
                }
                else if (removedFrom === -1) { // added
                  thisStore.add(element);
                }
                // else, the notification is for a change;
                //   but, first of all, we would not get that (false below)
                //   and second, we are already listening to the object directly,
                //   and send events from there
              },
              false
            );
          }
        }
        else {
          thisStore._data = [];
        }
      },

      isOperational: function() {
        return this.getIdentity && lang.isFunction(this.getIdentity) &&
          this.queryEngine && lang.isFunction(this.queryEngine);// &&
          //this.notify && lang.isFunction(this.notify);
      },

      contains: function(object){
        // summary:
        //		Is the object in this store?
        // object: Object
        //		The object to check membership for. We compare ===.
        // returns: Boolean
        this._c_pre(function() {return this.isOperational();});

        var filterResult = this._data.filter(function(wrapper) {
          return wrapper.data === object;
        });
        if (filterResult.length > 1) {
          throw "ERROR: object in store more then once (object: " + object + ", store: " + this + ")";
        }
        else {
          return filterResult.length === 1;
        }
      },

      get: function(id){
        // summary:
        //		Retrieves an object by its identity
        // id: Number
        //		The identity to use to lookup the object
        // returns: Object
        //		The object in the store that matches the given id.

        var filterResult = this._data.filter(function(wrapper) {
          return wrapper.id === id;
        });
        if (filterResult.length > 1) {
          throw "ERROR: duplicate id in store (id: " + id + ", store: " + this + ")";
        }
        else if (filterResult.length === 0) {
          return null;
        }
        else {
          return filterResult[0].data;
        }
      },

      put: function(object) {
        // summary:
        //		Stores an object. Options are ignored.
        //    Observable wrapper will send events, replacing the object with the same identity.
        // object: Object
        //		The object to store.
        // returns: Number
        this._c_pre(function() {return this.isOperational();});

        var id = this.getIdentity(object);
        var existing = this.get(id);
        if (existing && existing !== object) {
          // we have an object with this identity already, and it is not the same object; remove the old object
          this.remove(id);
        }
        if (!existing || existing !== object) {
          // we did not have an object, or we just removed it; add the new object
          this.add(object); // exception not possible (!existing or removed)
        }
        // else, do nothing; object with id did exist, and was the same; events are sent already via watch
      },

      add: function(object){
        // summary:
        //		Creates an object, throws an error if the object already exists
        //		Options are ignored..
        //    Observable wrapper will send events.
        // object: Object
        //		The object to store.
        // returns: Number
        this._c_pre(function() {return this.isOperational();});

        if (this.get(this.getIdentity(object))) { // we have this object already
          throw ERROR_ALREADY_IN_STORE;
        }
        var wrapper = this._wrap(object);
        this._data.push(wrapper); // Store spec doesn't say what we should return. We return nothing.
      },

      remove: function(id){
        // summary:
        //		Deletes an object by its identity
        //    Observable wrapper will send events.
        // id: Number
        //		The identity to use to delete the object
        // returns: Boolean
        //		Returns true if an object was removed, falsy (undefined) if no object matched the id

        var thisStore = this;
        var foundAtIndex = this._data.reduce(
          function(acc, wrapper, index) {
            if (wrapper.id === id) {
              if (acc > -1) {
                throw "ERROR: duplicate id in store (id: " + id + ", store: " + thisStore + ")";
              }
              else {
                wrapper.watcher.remove();
                return index;
              }
            }
            else {
              return acc;
            }
          },
          -1
        );
        if (foundAtIndex > -1) {
          thisStore._data.splice(foundAtIndex, 1);
        }
        // Store spec doesn't say what we should return. We return nothing.
      },

      query: function(query, options){
        // summary:
        //		Queries the store for objects.
        // query: Object
        //		The query to use for retrieving objects from the store.
        // options: dojo/store/api/Store.QueryOptions?
        //		The optional arguments to apply to the resultSet.
        // returns: dojo/store/api/Store.QueryResults
        //		The results of the query, extended with iterative methods.
        //
        // example:
        //		Given the following store:
        //
        // 	|	var store = new Memory({
        // 	|		data: [
        // 	|			{id: 1, name: "one", prime: false },
        //	|			{id: 2, name: "two", even: true, prime: true},
        //	|			{id: 3, name: "three", prime: true},
        //	|			{id: 4, name: "four", even: true, prime: false},
        //	|			{id: 5, name: "five", prime: true}
        //	|		]
        //	|	});
        //
        //	...find all items where "prime" is true:
        //
        //	|	var results = store.query({ prime: true });
        //
        //	...or find all items where "even" is true:
        //
        //	|	var results = store.query({ even: true });
        this._c_pre(function() {return this.isOperational();});

        return QueryResults(this.queryEngine(query, options)(this.getCurrentData()));
      },

      getCurrentData: function() {
        return this._data.map(function(wrapper) {
          return wrapper.data;
        });
      },

      loadAll: function(data) {
        // summary:
        //   replaces current data with new data; common objects
        //   are not signalled as removed and added again;
        //   returns array of removed elements
        this._c_pre(function() {return this.isOperational();});

        var thisStore = this;
        var inData = data.slice(0);
        var removed = [];
        thisStore._data = thisStore._data.reduce(
          function (acc, wrapper) {
            var indexInData = inData.indexOf(wrapper.data);
            if (indexInData < 0) {
              // not in inData; don't add to acc, signal removal
              wrapper.watcher.remove();
              if (thisStore.notify) {
                thisStore.notify(null, wrapper.id);
              }
              removed.push(wrapper.data);
            }
            else {
              // keep the element (add to acc), and note handled.
              inData.splice(indexInData, 1);
              acc.push(wrapper);
            }
            return acc;
          },
          []
        );
        // what is left in inData needs to be added
        inData.forEach(function(newElement) {
          thisStore.put(newElement);
        });
        return removed;
      },

      removeAll: function() {
        var thisStore = this;

        var oldData = thisStore._data;
        thisStore._data = [];
        oldData.forEach(function(wrapper) {
          wrapper.watcher.remove();
          if (thisStore.notify) {
            thisStore.notify(null, wrapper.id);
          }
        });
      },

      getLength: function() {
        return this._data.length;
      },

      toString: function() {
        return "[" + this._data.length + "[" + this._data + "]]";
      }

    });

//    var OurObservableStore = function(options) {
//      return Observable(new OurStore(options));
//    };

    return StoreOfStateful;

  });


NEW VIDEO: Orrin - "Fear"
If you're digging the trippy, melodic, thoughtful vibes of "Fear", be sure to keep an eye out for Orrin's self-titled debut, due on May 9.
It's no secret that the zeitgeist of hip-hop these days leans toward music that's fun, if nothing else – typically to the chagrin of old heads and "real rap" fans everywhere. There's almost an implied choice we're supposedly obligated to make: listen to rap that bangs, or listen to rap with substance.
With his hallucinogenic new video for "Fear", Orrin is bridging that gap. Aesthetically, it feels like a hard-hitting banger in the realm of SoundCloud rap, but the obvious intentionality behind the melodies, lyrics, and visuals here adds a great sense of originality and artistry to the track. His Warren Wolfe-produced single, "Fear," is an abstract invitation into Orrin's insecurities and imagination, as much as it is an opportunity to nod your head and bounce in your seat. Watch the Laneya Billingsley-edited video below.


text:
Q: helper method not accessible in view I have the following code in my view:
<%= gravatar_for @user %>

and the following code in my helper:
module UsersHelper
    def gravatar_for(user)
        gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
        gravatar_url = "http://gravatar.com/avatar#{gravatar_id}.png"
        image_tag(gravatar_url, alt: user.first_name.to_s + user.last_name.to_s, class: gravatar)
    end

end

However I'm getting an error: undefined local variable or methodgravatar' for #<#:0x00000100a1cbf0>`
What could be causing this?

A: You're using a reference, gravatar, in the call to image_tag.
If you mean to apply a style, use a string, "gravatar". Otherwise you need to make sure the method or value gravatar exists/is initialized, and available.

redpajama_set_name: RedPajamaStackExchange


In September, we partnered with 11 companies for the first time. We are pleased and excited to welcome the following companies as partners going forward. We invite you to take the time to learn more about what each of these companies does. Who knows, you may be their next customer!
Marc L. Breit, the founder of Breit Law Office, has over 25 years of experience in litigating matters for his clients in Kentucky and Indiana. Mr. Breit is a civil litigation attorney involving personal injury accidents with a focus on defending individuals, businesses, and insurance companies related to personal injury claims.
BI was established in 1978 and is the U.S. leader in offender monitoring products and services in community corrections. BI offers a wide range of products and services that help federal, state, and local agencies to monitor parolees and probationers.
Executive Care's mission is to provide compassionate, quality in-home care services to their clients so that they can remain safe and independent in the comfort of their own home.
Human Development Company has a package of services designed to meet the needs of small, medium, and large businesses, providing companies with access to comprehensive Employee Assistance Program services.
Ivy Tech was founded in 1963 as Indiana Vocational Technical College. Back then, the focus was primarily on technical and vocational education—but in the more than 50 years since, enormous changes have happened. Today, they are Indiana's only full-fledged community college, offering more than 150 programs.
Dr. Kumar's philosophy is simple: Eye care with compassion. He believes that personalized patient care leads to better treatment, superior outcomes, and happier, healthier patients. Now in his 34th year of private practice, Dr. Sushil Kumar values building relationships with his patients through fostering an environment of professionalism, experience, compassion, and trust.
Since 1966, the Louisville Apartment Association has proudly represented all facets of the multifamily housing industry in the Greater Louisville area. Today, they continue their mission of improving the professionalism of those in the multifamily housing industry by building relationships and promoting growth between those involved in ownership, management, and suppliers of products and services to the industry.
One Southern Indiana (1si) is the Lead Economic Development Organization (LEDO) and Chamber of Commerce for Clark and Floyd Counties on the Indiana side of Louisville, Kentucky. 1si proactively works to grow the regional economy through business attraction, retention, and expansion; through encouraging and supporting entrepreneurs and workforce development; and through providing government and workforce advocacy, business education, networking opportunities, and other business services to members and investors.
Taylor Orthodontics is dedicated to offering professional and personalized orthodontic treatment to the residents of Oldham County and the surrounding areas. Their purpose is not only to straighten teeth, but to improve their patients' lives through the confidence of a beautiful healthy smile.
Located in Versailles, Kentucky (Woodford County), Parks & Recreation maintains numerous parks, ball fields, pavilions, and other facilities in addition to Falling Springs Center, their community recreation facility. They have a number of programs for children and adults as well as special events each month including an annual kids triathlon and 5K races.


ST GEORGE'S, Grenada, Saturday January 27, 2018 – We're just a few days into the New Year and already Grenada, the Spice of the Caribbean, is buzzing with many fun activities to experience. Located in the Windward Islands, south west of Barbados, this charming destination consists of the main island Grenada along with the smaller Carriacou and Petite Martinique. With a size of just 133 square miles you can go from a pristine white sand beach to a refreshing waterfall or our world famous Underwater Sculpture Park in just minutes.
After enjoying these sailing events, switch gears to one of merriment and revelry for the first Carnival festival that Pure Grenada has to offer. It takes place on Sister Isle Carriacou February 12-13. The pomp, splendor and colour of Carriacou's Carnival is made an even richer experience when complemented by its deep traditional roots. The festival encompasses wonderfully expressive street dances, island music, the Jab Jab and even the authentic Shakespeare Mas. This masquerade involves men dressed in bright coloured costumes engaging in the recitation of Shakespeare verses hoping not to fumble on their lines otherwise surrendering to a stroke of their opponent's stick.


text:
The Madman
Gibran, Kahlil (Author)
Price PEC Price
Paperback (09 January 2019)
The Madman: His Parables and Poems
Price: Rp 179,000
Publisher: Gibran, Kahlil
Rp 179,000	 Rp 179,000
Paperback (14 June 2016)
Widely known in America as author of The Prophet, which sold more copies in the 20th century than any other book but the Bible, the great Lebanese-American poet and artist Kahlil Gibran (1883-1931) first became known to Americans in 1918 with the publication of The Madman.
Thought-provoking and inspiring, the book is a collection of memorable, life-affirming parables and poems, many of them casting an ironic light on the beliefs, aspirations, and vanities of humankind -- and many reminiscent of the work of Tagore and Nietzsche, both of whom were strong influences on Gibran.
Among the 35 poems and parables in this volume are "How I Became a Madman," "The Two Hermits," "The Wise Dog," "The Good God and the Evil God," "Night and the Madman," "The Three Ants," "When My Sorrow Was Born," "And When My Joy Was Born," and many more.
The book includes several illustrations by the author, whose exquisite drawings are reminiscent of Rodin and the best of Blake. ." . . the greatest of Arab Romantics and father of a 20th-century Romantic tradition whose impact on Arab writers has been at least as strong as that of 19th-century figures such as Wordsworth and Keats on their English-speaking counterparts." -- Dr. Suheil Bushrui, Director of the Kahlil Gibran Chair on Values and Peace, University of Maryland
Publisher: Dover Publications
Aurelius, Marcus
The Life of Leonardo...
Vasari, Giorgio
Letters from a Stoic...
The Genealogy of Morals...
Nietzsche, Friedrich Wilhelm
The Fall of Icarus
The Book of Rumi: 105...
I Hate and I Love
Catullus, Gaius Valerius
Hui-LAN Koo, Madame ...
Koo, Hui-Lan
Crime and Punishment...
Dostoevsky, Fyodor
Circe and the Cyclops...
Beyond Good and Evil...

redpajama_set_name: RedPajamaCommonCrawl


text:
(-) Young people and families (3)
1 in 3 women with technical degrees work in engineering
Fewer young, highly educated people have completed technical studies compared to ten years ago. Among these engineering graduates, the number of men is four times as high as the number of women. According to Statistics Netherlands, nearly 30 percent of female and almost half of male engineering graduates start working in technical occupations.
Number of school dropouts down in the Netherlands and the EU
The school dropout rate in the Netherlands was reduced in recent years to 8.8 percent in 2012. The rate across the EU was also gradually reduced. The reduction of school dropouts is high on the national and international policy agenda.
Young religious people form the minority
Slightly fewer than half of all people aged between 12 and 25 responded in 2009 that they had a religious denomination. This share has fallen by 6 percent points since 1997. Church attendance is low among young people. About one in seven goes to church or to a religious gathering at least once a month.


CAPITAL EXPENDITURE (CAPEX) is the amount used during a particular period to acquire or improve long-term assets such as property, plant or equipment.
INTERNAL CONTROL SYSTEM is a formalized system intended to provide reasonable assurance that the objectives of a program as a whole are met, e.g. financial control, quality control or process control.
RED HERRING is a preliminary registration statement describing the issue (the IPO) and prospects of the company that must be filed with the SEC or provincial securities commission. There is no price or issue size stated in the red herring. Red Herrings are sometimes updated several times before it is called the final prospectus. It is known as a red herring because it contains a statement typed in red that the company is not attempting to sell their shares before the registration is approved by the SEC.


Could you as Vice President, take this crisis into your own hands and play the role that President Ian Khama is playing. This involves appearing on TV, motivating and inspiring us who are trying to combat the poaching. We desperately need leadership!
The problem facing the Republic of South Africa regarding the wanton poaching of our Rhino and other species of animal has now reached epidemic proportions, with 446 rhino recorded as already having been poached, this year, alone.
Apart from the tragedy and suffering that this signifies for our rhino this has become a national security tragedy for the country in that armed foreigners protected by armed foreign gunmen are crossing our borders, especially into the Kruger National park with the aim of poaching rhino for their horn, but also with the intent to defend what is not theirs, if necessary, by taking the lives of our park rangers and soldiers! In any country this would be considered a very serious national security issue and constitutes nothing less than an armed foreign incursion and in some instances a declaration of war.
Whilst the Republic spends hundreds of millions of rand every year in peacekeeping efforts on the continent, a low scale war is being waged on our own border almost without answer except for the approximately 150 military personnel deployed to the Kruger National Park to protect more than 350km of border. In a normal 3 watch system this means that a mere 50 military personnel can be on duty at any one time. So we have a situation where there is 1 man available for about every 7 kilometres of border, at any one time. We are clearly not taking this very serious threat to our national security, in which our soldiers and park rangers are threatened daily as seriously as we should be.
Present conventional wisdom, as reported in the press, purports that the proceeds of rhino poaching (and probably the poaching of other animals) are being channelled to RENAMO in Mozambique. It is widely accepted that RENAMO is a destabilising force in Mozambique and that it is quite willing to revert to acts of terrorism in order to de-stabilise the government of Mozambique. Thus, our inaction against poachers (armed foreigners operating with military force including helicopters, night vision equipment and high calibre assault rifles), is indirectly supporting instability, not only in our region, but right here on our doorstep.
Minster, the time has come to take this threat to our national security and to the national security of our neighbours, very seriously. This low scale war on our national borders between the Kruger National Park and our neighbouring countries is a war which we cannot afford to lose. Your legacy as the Minister of Defence and Military Veterans and that of the Government of South Africa is dependent on winning this war, more so than it is on our peacekeeping efforts in far flung places on the Continent such as the Democratic Republic of the Congo or the Central African Republic. This is not a war against our neighbouring countries; this is a war against their destabilising forces!
We need more troops in the Kruger National Park, authority for our troops and rangers to pursue poachers into our neighbouring countries (in our neighbouring countries' own interests) and a properly built and patrolled fence along our border. We must also make use of the latest technologies for detecting transgressions of our border and must have a complete rethink of the Trans Frontier National Park, which has merely turned out to be an excellent mechanism for transferring our game to areas where it can be slaughtered at will, with no commensurate benefit to our national security or the state coffers!
Minister, National Security is everyone's concern and responsibility, the job of protecting it, in this case, is yours!


.... going on a walk with a friend. It was wonderful just talking to her & enjoying the weather. My poor knee is a mess & it was good to just get in a good long walk & have good laughs distracting me from the pain.
... the gorgeous Indiana Summer weather we got to have before the cold set in.
... new blankets for our bed.
... my new running shoes! I wasn't thrilled with the color - I love my BRIGHT in your FACE shoes, but these feel like I'm walking on clouds so I'll trade in the brightness for the comfort.
... waking up to white roses on the kitchen counter. Ricky sent me 2 dozen white roses the day before we got married & every year for our anniversary since, he gets me white roses. I love the romantic sentiment of it all.
... sleeping in. It's wonderful not waking up to an alarm clock.
.... Carrot Cake on our anniversary. It was what our wedding cake was :) .... & yes, I had a corner of the carrot cake but yes, I did include it in my calories for the day :) ... I kept it in check.
... all the sweet messages, texts & comment from friends congratulating us for our anniversary. That's so kind when people take time from their lives.
... Cards that are spot on. The best part, Ricky just read the front of the card & then said, "HIGH FIVE" ... I just laughed because I knew what the inside said... Do I know my husband or what?
... going to the movies & having it all to ourselves. It's like Ricky planned the whole day where he rented the places for us - first the restaurant & then the movies. That's the advantage of taking off on a weekday for our big day.
... The BEST MOVIE! Oh my gosh - Pan is so good. I dont know why it hasn't gotten more attention or why I saw that the ratings are bad. I LOVED it. If you love the story of Peter Pan, you'd love this movie.
Happy Anniversary to you too!! Stretch that celebration as long as you can. 20 years is something to be very proud of!
Happy anniversary! That is so sweet that he sends you white roses every year :) I've always wanted to have the movie theater to ourselves so we could do things like that but it hasn't happened yet. I'm just going to have to keep working on that one.
Too cute! What a perfect day! Happy Anniversary to you both!!
so much to be thankful for! sounds like y'all had a great day celebrating and yay! for keeping your calories in check!
Happy anniversary!!! I LOVE having a movie theater all to yourself. I really want to see Pan! Annnd I want that carrot cake...yum!
Happy 20th Anniversary!!! What an amazing milestone and sounds like you really spent the day right!!
... I want those shoes and that tee shirt too! ha!
Blessings from Susan in Montreal Canada.
Wow much to be thankful for. Love to see how you two spent your special day, congrats, it's a big deal now days. Enjoyed your photos so much.
Y'all are precious! So glad you got to spend the day together!
yay new shoes!! happy anniversary, that wedding picture seriously is the best. good to hear pan is good, KC wanted to see it.
happy anniversary!! i hadn't heard about pan until i heard it didn't do well. like where was the promotion for it? none around here anyway. that sounds like a perfect day and i think that's awesome to stretch it out a few more days with dinner later!


Cut the boneless chicken in bite size pieces. Marinate chicken with 1 1/2 tbsp soya sauce, salt , pepper powder, egg and 2 tbsp cornflour for 1 hour in frigde.
Preheat the Air fryer at 180 deg C for 5 minutes. Place the chicken pieces in the basket and cook for 8 -10 minutes at 180 deg or until its cooked. In the remaining marinate add baby corn and air fry it for 3-4 minutes and keep it aside.
In a small bowl take 1 1/2 tbsp of cornflour and little water and make a slurry and keep it aside.
Heat a wok add oil and minced garlic and saute for a minute then the white part of spring onion, saute it for a minute. Add all chopped veggies, fry for 2 minutes on high heat.
Put the air fried chicken and baby corn also in the wok then add soya sauce, red chili sauce, salt and pepper stir well so that sauce is well coated to chicken pieces and veggies.
Add 1 1/2 cup hot water in the wok when it starts to boil add cornflour slurry to to thicken the sauce. Put chopped spring onion and stir.
Garnish with fresh red chili and serve hot with fried rice or steamed rice.


Seventeen Spartans raced around Peterborough in the Perkins Great Eastern Run half marathon and many achieved new personal bests, hit new targets, got under two hours for the first time and were running 13.1 miles for the first time.
DANNY HUKIN was running his first half marathon race since knee surgery. He set himself a target of 1 hour 30 minutes and was very happy with a 1:27:43 finish time.
ERICA GRAYSON got under two hours for the first time, knocking 15 minutes off her half marathon personal best (PB) this year to finish in 1:59:51. She was joined by MICHAEL ANDREWS who ran his first ever half marathon in 1:59:48.
Despite already having a good time SUZY HAWKINS squeezed another 14 seconds off hers and finished in 1:33:45.
STUART HAYCROFT continued his run of achieving a PB for every race of the year with 1:27:45, beating his previous Half Marathon PB by just under six minutes.
GREG KELLY who trimmed 3:31 off his PB when he ran in with 1:48:11.
BARRY KING ran with his brother STEVE KING who took almost 20 minutes off his PB time! They finished in 2:07:29.
JIM BROWN ran his fastest half marathon since 2010 having had major surgery in 2011 and 2015. His 1:44:02 gives him an age related score well over 70%.
VERITY FISHER and ANN TRYSSESOONE were under two hours with 1:58:23 and 1:58:56. DANIEL SUTTON came with 2:00:44; KAREN ELLIS and JULIE SHADBOLT with 2:01:54; SHARON CROWLEY in a season's best 2:06:34; and CAROLINE CROFT with 2:10:30. PAUL HOLGATE ran round with his daughter in her first half marathon, they finished in 2 hours 48 minutes.
232 STUART HAYCROFT 1:27:45 PB (5:46).
PAUL HEWETT ran the Herts 10K in a time of 38 mins 22 seconds. He was 23rd out of 1789.
JENNY PAUL did The Ridgeway Run, organised by Tring Running Club. It was nine miles of hilly trail with great views from the tops. Her time of 1:39:39 was thirteen minutes quicker than last year.
Super veteran PETER CARPENTER ran the Wimpole Hall 10 mile event. He reckons he was doing reasonably well to the 8 mile point, but then it was a struggle for the last two miles, including a couple of brief stops in the last mile in what was really a meadow. He was pleased to just finish in less than two hours with 1:59:20 for the scenic cross country course.
Maddie Pritchard and John Harris ran the Norton 5k on Saturday. John was eighth with 20:30 and Maddie 27th with 23:18.
TOM SAUKA did the Langdale Horseshoe fell race on Saturday. It was wet and forecast for rain all day so he prepared for the worst. It was very wet and boggy all through the race and he spent a lot of it knee deep in it or slipping over on the grassy down hills, but it was a great atmosphere as one of the classic fell races with a lot of the top names there. He finished in 3 hours 52 minutes 6 seconds.
York is one of the biggest and best organised UK marathons. On an undulating course mainly to the East of York, ROGER BIGGS completed the 26.2 miles in 5:05:42.
ANTHONY BLYTH completed his first run as a Spartan at the weekend!
It was the Royal Parks Half with a time of 1:35:28. He was fund raising running for the Great Ormond Street Hospital.
It was a quiet week with a number of Spartans expected to be in action at the Great Eastern Half Marathon in Peterborough. CRAIG HALSEY followed up his recent outstanding Berlin Marathon performance by showing there's nothing wrong with his current speed at shorter distances either. He was first to finish at Stevenage parkrun in 16:51, matching his course best. MARK BEASLEY was next Spartan man home in 22:22 in 30th position and MARTIN DUDLEY finished in 22:36. CHRIS HOLLAND (23:30), RYAN DUNNING (24:06), SIMON SYPULA (24:39), LEE PICKERSGILL (24:39), DAVID SCOTT (25:07) and JAMES SOUTH (28:01) also ran.
For the ladies RUTH REILLY was second finisher at Stevenage in a new course PB time of 22:00. KELLY EVANS was 9th in 25:05 and CAROL PAUL 14th in 26:32. TRACY PEZ also finished top 30 (23rd in 27:30) and was joined by KAREN PALMER (28:37) and SALLY PHILLIPS in a new course PB time of 29:46.
PAUL MAGUIRE chose to run in Stratford-Upon-Avon on parkrun's 13th birthday and ran an excellent new 5k PB of 20:56 to finish in 23rd position. Elsewhere MARK GOODWIN was 26th finisher at Panshanger in 22:37 and VERITY FISHER was at Rutland Water, finishing in 47:46. Finally ROGER HARDMAN was again in action in Newcastle, finishing in 27:42.
Serpentine 25th Anniversary 5K from the boat house on Friday 27th October.
Fred Hughes 10 miles inc senior championships at St. Albans on Sunday 21st January.


text:
There's a new leader at Pocatello Regional Airport.
Recently, Mayor Brian Blad selected Alan Evans to the post of Airport Manager. Alan has served at the airport for over 29 years and during the past 15 years, he has been the facility's Operations and Maintenance Supervisor.
"Alan knows and understands Pocatello Regional Airport," said Mayor Brian Blad. "He's done a fantastic job as Interim Airport Manager and we're excited that he wanted to take on this responsibility on a permanent basis."
"I would like to see Pocatello Regional Airport always be our residents and visitors first choice for their travels," Alan said. "The staff have always taken great pride in this airport and they are committed to providing the best service and experience for travelers."
Alan started his career with Pocatello Regional Airport in 1986 as an Airport Maintenance Laborer where he was responsible for grounds, building, and vehicle maintenance. After briefly leaving to work in the private sector, he returned in 1990 as an Airport Maintenance Technician, charged with maintaining the runways, taxiways, airfield lighting, as well as maintenance of the airport's terminal. Since 2004, he's been the airport's Operations/Maintenance Supervisor and been tasked with managing maintenance staff, maintaining compliance with Federal Aviation Administration certification requirements, overseeing all airport construction projects, and more.
In his new role as Airport Manager, Alan will direct and manage the overall operations of Pocatello Regional Airport. He will be responsible for planning for transportation services through the development of air service, and general aviation, as well as non-aviation business development.
"Currently, we are working on securing funding and developing future plans for service to Denver, which would be a great addition for our local travelers," Alan said. "The infrastructure that is already in place at the airport is impressive and will allow us to grow in many ways. Over the past three years, our capabilities with aerial firefighting and airfreight have grown, and we will be able to expand those services as their needs increase."
Alan has an Associate's Degree in Agricultural Management from Ricks College and studied business management at Idaho State University.
He and his wife, Kami, have three children, Jade, Shelby, and Macey. In his spare time, he likes to snowmobile, fish, and enjoy the great outdoors with his family and grandchildren.
For more information on Pocatello Regional Airport, visit iflypocatello.com or like the Airport's Facebook page at facebook.com/PocatelloRegionalAirport.
⇐Previous Pocatello Water Department Releases 2019 Water Quality ReportNext⇒ Pocatello Fire Dept. Reminds Residents to Keep Fireworks Displays "Safe and Sane"


text:
Officer Who Shot Daunte Wright Identified, City Manager Fired
By Cherranda Smith
The police officer authorities say fatally shot 20-year-old Daunte Wright during a traffic stop on Sunday (April 11) has been identified as Kim Potter.
In a statement released Monday evening (April 12), the Minnesota Bureau of Criminal Apprehension identified Potter, a 26-year veteran of the department, as the officer who shot Wright after he was pulled over for expired tags. A warrant was discovered by officers who attempted to arrest Wright when Potter shot him.
City officials released body camera footage from the deadly incident at a press conference on Monday (April 12). Journalists and community advocates pressed Police Chief Tim Gannon on the reason for the stop which led to Wright's death, given the backlog in getting updated tags amid the coronavirus pandemic.
Advocates called for the officer's immediate termination, though Gannon and other officials would be completing investigative protocols before decisions were to be made. Gannon also called Potter's use of a firearm instead of a taser was an "accidental discharge."
Brooklyn Center City Manager Fired
City Manager Curt Boganey was "relieved of his duties" after an urgent city council meeting was called Monday evening. The council voted to put Brooklyn Center Mayor Mike Elliott in charge of the city's police force, which had been under Boganey's charge given the structure of the city's government.
Mayor Elliott confirmed the move on Twitter after Councilmember Dan Ryan made the announcement during a virtual council meeting, as reported by the Minnesota Star Tribune. Boganey had reportedly served in that position since 2003.
Elliott said Boganey's termination will "streamline" things and "establish a chain of command and leadership."
Protests Continue, Other Cities Join In Solidarity
Members of the community also questioned the use of flash bangs, tear gas, and rubber bullets on protesters. The National Guard has also been deployed to Brooklyn Center, which is just a few miles outside of Minneapolis. Protests entered their second night after the body camera footage was released and calls for justice continued not only for Daunte, but also for George Floyd whose murderer is on trial ten miles away.
Minnesota Governor Tim Walz established a curfew from 7 p.m. to 6 a.m. on Tuesday (April 13) for three counties that include Brooklyn Center, Minneapolis, and St. Paul.
Hundreds of protesters gathered throughout Brooklyn Center. According to USA Today, 40 arrests were made for curfew violation and rioting. Protests in New York City, Louisville, Kentucky where Breonna Taylor was shot and killed by police, Portland, Oregon, and Oakland, California also took place. The Oakland protest was held at Oscar Grant Plaza in honor of Oscar Grant who was fatally shot by a police officer in 2009.


West Drought Monitor July 24, 2018.
Nathan Elder, manager of raw water supply for Denver Water, said low water levels at the South Platte reservoir in Littleton created a need for a big draw from Dillon. Even though human consumption is Denver Water's primary use, Elder said they do keep the marinas in mind.
The U.S. Drought Monitor, which tracks drought across the country and assigns drought severity based on conditions, assigns dryness levels from D0 to D4. D0 is considered "abnormally dry" but not severe enough to be considered a drought, while D4 is considered an "exceptional drought" that means there is a serious water emergency that causes "exceptional and widespread" crop and pasture losses.
Summit County's "severe drought" is at level D2. At that stage, crop and pasture losses are likely, water shortages are common and water restrictions are imposed.
Victor Lee is a hydrologist and civil engineer for the Bureau of Reclamation, which manages the Green Mountain Reservoir in Heeney. Lee said that the monsoon is kicking in late due to less-than-ideal weather patterns.
Combined with an early spring, that makes for a long period without significant precipitation. Lee said that there is no threat to water supplies for human consumption, yet. A few years of healthy precipitation has meant that reservoirs across the state have managed to keep healthy levels in reserve and have been steadily releasing water to keep rivers and streams flowing.
"Without the reservoirs in the system, the stream flows we would be seeing throughout the upper Colorado would be much more dire," Lee said.
If this drought persists into yet another year, the reasons for worry will multiply and tough decisions will be made.
Due to the low flows, dry conditions and extreme heat, higher water temperatures in the White River are nearing danger levels for cold-water fish. CPW officials have been encouraging anglers to fish in the early morning, when water temperatures are cooler and less stressful to fish. Last Friday, CPW, out of Grand Junction, asked for voluntary fishing closures on western Colorado rivers due to the high water temperatures and low flows.
CPW and the Colorado Water Conservation Board (CWCB) entered into a water lease agreement in 2012. The agreement allows the partial release of CPW's water stored in Lake Avery to help meet minimum instream flow needs of 200 cubic feet per second (cfs) at the County Road 4 (Wakara) bridge. Users at Lake Avery would see declining water levels in the lake whenever any releases are initiated. deVergie said CPW would give at least 48 hours notice prior to any releases.
In 2012, the lake level at Avery dropped about six feet as 1300 acre-feet out of the 7600 acre-foot storage capacity reservoir was used. Water released comes from the bottom of the reservoir, is relatively cold, and able to be quickly oxygenated. Releases this year could use twice as many acre-feet from the reservoir and drop the lake level up to 14 feet.
River advocates attending included Shawn Welder, Bob Dorsett of Colorado River Watch, Roy Wedding and Bob Regulski. Upriver fishing ranch interests were noticeably absent from the meeting. One such individual told the Herald Times after the meeting that neither he nor his manager had heard anything about the meeting beforehand.
Graf told the meeting that his agency is evaluating how their water rights statewide might be better used to improve difficult situations like the White River now faces which might differ, to varying degrees, from the related water right decrees.
Dorsett cautioned the group not to think of this as an unusual circumstance, that current data trends are for these low flows to be more the norm. This concern evoked some discussion about needing more water storage in the valley, which could possibly include enlarging Lake Avery.
Johnson, a Miller Ditch irrigator, wondered why we were trying to save fish and habitat in the White River when there is so little public access to the river for fishing, to which de Vergie responded that the duty of CPW was to provide a viable fishery and to serve all members of the public, including those that avail themselves of fishing on the private ranches.
Lake Avery releases of 10 to 15 cfs in 2012 didn't occur until Aug. 30 and continued until Oct. 3. That year, de Vergie said, we experienced some good rain in July that postponed the need to release Avery water until late August.
The threshold factors CPW said are critical for the fish are a flow of less than 200 cfs at the Wakara bridge, water temperatures above 70 degree Fahrenheit there, and dissolved oxygen levels of less than 5 ppm. These are the factors that will trigger releases.
Southwest Colorado and some of the higher elevations in the region have seen increased moisture recently that has allowed for lifting of fire restrictions, including by the Grand Mesa, Uncompahgre and Gunnison national forests, the Bureau of Land Management's Montrose-based Uncompahgre Field Office, and Montrose County, all on Friday.
But the picture has been different, as in drier, in the Grand Valley. Through Friday, Grand Junction was experiencing its driest July in a decade, with just 0.08 inches for the month, according to National Weather Service data. It hasn't been drier since just 0.02 inches fell during all of July 2008.
Charnick said that by this time in an average July Grand Junction has received about a half-inch of rain for the month.
A clockwise circulation forms around that high pressure, so what's needed is for the high pressure to move a bit east so moisture from the south is brought up into the area, he said.
Still, Charnick said the area isn't necessarily running behind in getting monsoonal rains.
He noted that average precipitation in August in Grand Junction is 0.95 inches, compared to 0.61 inches in July. The monsoon can extend into September.
"Actually September is usually our wettest month of the year," Charnick said, averaging 1.19 inches.
Peter Goble, climatologist and drought specialist at Colorado State University's Colorado Climate Center, said Grand Junction is heading into its wettest time of year. He said that's all relative, given that a month with 1.19 inches of precipitation would be considered a dry month in a lot of places. Still, any time an area is heading into its wettest season climatologically, it brings hope of getting precipitation to reduce moisture deficits, Goble said.
On the down side, Goble said if an area misses out on getting much moisture during what is supposed to be its wettest time of year, it can be stuck with a deficit for quite a while.
He said the Grand Junction area's monsoon season typically peaks later than for a lot of the state, in late August or early September, but it's still a bit disconcerting that it hasn't started yet.
Essentially all of Mesa County is now in the extreme drought category — the second-worst category. Charnick said that reclassification occurred in early July.
A tiny sliver of the far southern part of the county is in the exceptional category, which is the driest. Much of the Four Corners area also is in exceptional drought.
Goble said the last time the entire county was in extreme drought was the summer of 2012. He said the county got out of the extreme drought category by the middle of the snow season in 2013.
The county reached the exceptional drought category in the summer of 2002.
Joe Burtard, spokesman for the Ute Water Conservancy District, one of the Grand Valley's major water providers, said the current drought is one of the worst on record for his agency, one of four major episodes that also include the 2002 and 2012 droughts and one in 1977.
"This year has been a really abnormal year for us in all aspects," he said.
He said it's when the area moves into the extreme and exceptional drought categories that area water providers start seriously considering mandatory water restrictions, rather than the voluntary ones now in place.
"We're really waiting to see what these monsoon rains do for the valley," he said.
Ironically, though, those rains are expected to pose a challenge to local water providers rather than just simply benefits. The Lake Christine Fire near Basalt has charred more than 12,000 acres, and the rains are expected to bring flooding that will result in ash reaching local rivers, and ultimately the Colorado River.
Burtard said that will affect the Clifton Water District, which gets water out of the river. As a result it will impact Ute Water, which would serve as a backup water source for Clifton Water as part of an agreement among local providers to help each other in emergency situations.
That will further tax Ute Water, which already has been pulling from limited resources this summer, Burtard said.
"It's not a matter of if, it's a matter of when, because when we get that monsoon rain that ash is coming our way," he said.
Ute Water also recently purchased water rights from the Ruedi Reservoir in the Fryingpan River Valley above Basalt to help in drought years and in planning for population growth in its service area. That water also could help in a situation such as a fire on Grand Mesa that could impact watersheds serving Ute Water.
But for Ute Water to tap the Ruedi supply for any reason, the water would have to run through Basalt and down the Roaring Fork and Colorado rivers.
By 2042, the city of Loveland is projected to demand 30,000 acre-feet of water a year, according to projections calculated by Loveland Water and Power staff. Comparatively, the city currently needs about 18,000 acre-feet annually, and the city's diverse portfolio of water sources yields a firm 22,400 acre-feet each year.
One acre-foot is enough water to cover one acre of land, one foot deep. It's about enough water to supply two homes for a year, said Larry Howard, a senior civil engineer in the city of Loveland's water resources division.
Meanwhile, both the city's population and acreage is growing.
Loveland's 2017 data and assumptions report states the city now has a population of 74,385 within a 35 square mile area, and at ultimate buildout will cover 66 square miles. By 2042, Loveland's population is estimated to hit 110,000 people, according to the same report.
But, simultaneously, per-capita water consumption has been steadily falling nationwide over the past 20 years due to efficient fixtures and conservation initiatives, Bernosky said. Additionally, the introduction of metered water rates has played a role in reducing use compared to the previous flat monthly fee, Greene said.
Luckily for the city, one variable is already locked in: The city of Loveland's water district is surrounded on all sides by other districts, so the area it will serve is finite.
Nevertheless, Bernosky said it is very difficult to take these trends and accurately predict the city's water needs. There are a lot of pitfalls in forecasting the future as development patterns shift or decline, technology advances, natural events like droughts take place, economic factors play in and unexpected events occur, he said.
ComSciCon-Rocky Mountain West 2018 will be held October 20-21, 2018 in Fort Collins, CO at Colorado State University. The application deadline is August 10th. Questions may be directed to rmwest@comscicon.org.


Have you ever wondered what happens when you cry? Or, what your tears are made up of? Tears are salty fluids made up of mucus, oil and water. They flow down the surface of the eye and across the face. Tear production is not necessarily a result of crying or of emotional distress. Tears also help to keep your eyes and eyelids lubricated, prevent irritation, and keep objects from getting caught in your eyes.
Tears are basically made of three main components: water, oil and mucus. Each one of them plays an important role in the eye.
Mucus covers the eyes' surface and joins the tear layer to the eye. It prevents dry spots from forming on the cornea.
The water in the eye is more of a salt solution (saline solution) that is rich with minerals and vitamins, all of which are crucial for the normal functioning of your eyes.
The oil makes sure that the watery layer does not evaporate––if it did, you may end up with dry eyes.
There are three types of tears and here we will discuss these types and what causes them.
Basal Tears: These are your basic tears. The eye exists in this fluid, and is able to smoothly move and roll around because of it. The oil keeps the tears in place and prevents them from evaporating.
Irritant Tears: These are the tears that you notice when you peel an onion, when you vomit, or when you get dust in your eye. These tears flush out irritants from the eyes' surface.
Psychic Tears: These act as a response to strong emotions. These types of tears contain more hormones and natural painkillers than any of the other types of tears.
Tears are important to the body in more ways than one. They help to regulate emotions and reduce distress. Emotionally-triggered tear production also releases endorphins and oxytocin, which are natural pain relievers. Additionally, they contain a bacterium-killing enzyme called Iysozyme. Therefore, tears are an important part of the emotional response, of your eyes' overall health, and of your body's defense system.
If you notice your eyes becoming unusually dry, irritated, or excessively watery, do not hesitate to schedule an appointment at Heights Eye Center today!


text:
IOM Organizing Transport Home for Hundreds of Stranded Tajik Migrants
Press Room ›
Press Releases ›
Vienna - The International Organization for Migration (IOM) is today supporting the voluntary return home of hundreds of Tajik migrants stranded at the Kazakhstan/Uzbekistan border due to restrictions imposed in the wake of COVID-19.
The group of 650 people are mainly migrant workers, and includes women, children and students. On Friday afternoon they were preparing to board buses funded by IOM to make the journey from the border crossing at Zhibek Zholi, through Uzbekistan, to Khojand in Tajikistan.
They are just some of the tens of thousands of migrant workers in Central Asia who have lost their jobs due to the pandemic. Many have come from the Russian Federation, Kazakhstan and even further afield. They are typically working in low-paid jobs with little or no job security. Over a quarter of the returning migrants are between 15 and 24 years of age including 100 Tajik students from Kazakh universities. Fifteen percent of the group are women and girls.
While most of the migrants have only been waiting a few days to get across the border, some have been there for weeks, with little or no shelter and sanitation.
"We have been providing food, water and hygiene items for the migrants over the past few days while the logistics and paperwork were being organized," said Sanjarbek Toshbaev, IOM's head of office in Uzbekistan.
The 180 km journey will take four hours and is being closely coordinated with the three governments. IOM has provided food, water and hygiene items for the migrants over the past few days while the logistics and paperwork were being organized.
"We recognize and support measures in place to contain the spreading of COVID-19, but we also stress the right of migrants to return to their places of origin", said IOM's Toshbaev. "We need to work to find ways to get more stranded migrants home."
The governments of the United States and Norway have provided funds, with UNICEF also contributing.
Watch video: Stranded migrants at Zhibek Zholi, the border crossing point between Kazakhstan and Uzbekistan
Joe Lowry at IOM Regional Office in Vienna, +43 660 377 6404, jlowry@iom.int
Stranded migrants at Zhibek Zholi, the border crossing point between Kazakhstan and Uzbekistan. Photo: IOM