text:
/*
 * classList.js: Cross-browser full element.classList implementation.
 * 2014-07-23
 *
 * By Eli Grey, http://eligrey.com
 * Public Domain.
 * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
 */

/*global self, document, DOMException */

/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/

if ("document" in self) {

	// Full polyfill for browsers with no classList support
	if (!("classList" in document.createElement("_"))) {

	(function (view) {

	"use strict";

	if (!('Element' in view)) return;

	var
		  classListProp = "classList"
		, protoProp = "prototype"
		, elemCtrProto = view.Element[protoProp]
		, objCtr = Object
		, strTrim = String[protoProp].trim || function () {
			return this.replace(/^\s+|\s+$/g, "");
		}
		, arrIndexOf = Array[protoProp].indexOf || function (item) {
			var
				  i = 0
				, len = this.length
			;
			for (; i < len; i++) {
				if (i in this && this[i] === item) {
					return i;
				}
			}
			return -1;
		}
		// Vendors: please allow content code to instantiate DOMExceptions
		, DOMEx = function (type, message) {
			this.name = type;
			this.code = DOMException[type];
			this.message = message;
		}
		, checkTokenAndGetIndex = function (classList, token) {
			if (token === "") {
				throw new DOMEx(
					  "SYNTAX_ERR"
					, "An invalid or illegal string was specified"
				);
			}
			if (/\s/.test(token)) {
				throw new DOMEx(
					  "INVALID_CHARACTER_ERR"
					, "String contains an invalid character"
				);
			}
			return arrIndexOf.call(classList, token);
		}
		, ClassList = function (elem) {
			var
				  trimmedClasses = strTrim.call(elem.getAttribute("class") || "")
				, classes = trimmedClasses ? trimmedClasses.split(/\s+/) : []
				, i = 0
				, len = classes.length
			;
			for (; i < len; i++) {
				this.push(classes[i]);
			}
			this._updateClassName = function () {
				elem.setAttribute("class", this.toString());
			};
		}
		, classListProto = ClassList[protoProp] = []
		, classListGetter = function () {
			return new ClassList(this);
		}
	;
	// Most DOMException implementations don't allow calling DOMException's toString()
	// on non-DOMExceptions. Error's toString() is sufficient here.
	DOMEx[protoProp] = Error[protoProp];
	classListProto.item = function (i) {
		return this[i] || null;
	};
	classListProto.contains = function (token) {
		token += "";
		return checkTokenAndGetIndex(this, token) !== -1;
	};
	classListProto.add = function () {
		var
			  tokens = arguments
			, i = 0
			, l = tokens.length
			, token
			, updated = false
		;
		do {
			token = tokens[i] + "";
			if (checkTokenAndGetIndex(this, token) === -1) {
				this.push(token);
				updated = true;
			}
		}
		while (++i < l);

		if (updated) {
			this._updateClassName();
		}
	};
	classListProto.remove = function () {
		var
			  tokens = arguments
			, i = 0
			, l = tokens.length
			, token
			, updated = false
			, index
		;
		do {
			token = tokens[i] + "";
			index = checkTokenAndGetIndex(this, token);
			while (index !== -1) {
				this.splice(index, 1);
				updated = true;
				index = checkTokenAndGetIndex(this, token);
			}
		}
		while (++i < l);

		if (updated) {
			this._updateClassName();
		}
	};
	classListProto.toggle = function (token, force) {
		token += "";

		var
			  result = this.contains(token)
			, method = result ?
				force !== true && "remove"
			:
				force !== false && "add"
		;

		if (method) {
			this[method](token);
		}

		if (force === true || force === false) {
			return force;
		} else {
			return !result;
		}
	};
	classListProto.toString = function () {
		return this.join(" ");
	};

	if (objCtr.defineProperty) {
		var classListPropDesc = {
			  get: classListGetter
			, enumerable: true
			, configurable: true
		};
		try {
			objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
		} catch (ex) { // IE 8 doesn't support enumerable:true
			if (ex.number === -0x7FF5EC54) {
				classListPropDesc.enumerable = false;
				objCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);
			}
		}
	} else if (objCtr[protoProp].__defineGetter__) {
		elemCtrProto.__defineGetter__(classListProp, classListGetter);
	}

	}(self));

	} else {
	// There is full or partial native classList support, so just check if we need
	// to normalize the add/remove and toggle APIs.

	(function () {
		"use strict";

		var testElement = document.createElement("_");

		testElement.classList.add("c1", "c2");

		// Polyfill for IE 10/11 and Firefox <26, where classList.add and
		// classList.remove exist but support only one argument at a time.
		if (!testElement.classList.contains("c2")) {
			var createMethod = function(method) {
				var original = DOMTokenList.prototype[method];

				DOMTokenList.prototype[method] = function(token) {
					var i, len = arguments.length;

					for (i = 0; i < len; i++) {
						token = arguments[i];
						original.call(this, token);
					}
				};
			};
			createMethod('add');
			createMethod('remove');
		}

		testElement.classList.toggle("c3", false);

		// Polyfill for IE 10 and Firefox <24, where classList.toggle does not
		// support the second argument.
		if (testElement.classList.contains("c3")) {
			var _toggle = DOMTokenList.prototype.toggle;

			DOMTokenList.prototype.toggle = function(token, force) {
				if (1 in arguments && !this.contains(token) === !force) {
					return force;
				} else {
					return _toggle.call(this, token);
				}
			};

		}

		testElement = null;
	}());

	}

}
// Polyfill event.preventDefault & event.addEventListener
  if (!window.addEventListener) {
    (function() {
      if (!Event.prototype.preventDefault) {
        Event.prototype.preventDefault=function() {
          this.returnValue=false;
        };
      }
      if (!Event.prototype.stopPropagation) {
        Event.prototype.stopPropagation=function() {
          this.cancelBubble=true;
        };
      }
      if (!Element.prototype.addEventListener) {
        var eventListeners=[];
        var addEventListener=function(type,listener /*, useCapture (will be ignored) */) {
          var self=this;
          var wrapper=function(e) {
            e.target=e.srcElement;
            e.currentTarget=self;
            if (listener.handleEvent) {
              listener.handleEvent(e);
            } else {
              listener.call(self,e);
            }
          };
          if (type=="DOMContentLoaded") {
            var wrapper2=function(e) {
              if (document.readyState=="complete") {
                wrapper(e);
              }
            };
            document.attachEvent("onreadystatechange",wrapper2);
            eventListeners.push({object:this,type:type,listener:listener,wrapper:wrapper2});
            if (document.readyState=="complete") {
              var e=new Event();
              e.srcElement=window;
              wrapper2(e);
            }
          } else {
            this.attachEvent("on"+type,wrapper);
            eventListeners.push({object:this,type:type,listener:listener,wrapper:wrapper});
          }
        };
        var removeEventListener=function(type,listener /*, useCapture (will be ignored) */) {
          var counter=0;
          while (counter<eventListeners.length) {
            var eventListener=eventListeners[counter];
            if (eventListener.object==this && eventListener.type==type && eventListener.listener==listener) {
              if (type=="DOMContentLoaded") {
                this.detachEvent("onreadystatechange",eventListener.wrapper);
              } else {
                this.detachEvent("on"+type,eventListener.wrapper);
              }
              eventListeners.splice(counter, 1);
              break;
            }
            ++counter;
          }
        };
        Element.prototype.addEventListener=addEventListener;
        Element.prototype.removeEventListener=removeEventListener;
        if (HTMLDocument) {
          HTMLDocument.prototype.addEventListener=addEventListener;
          HTMLDocument.prototype.removeEventListener=removeEventListener;
        }
        if (Window) {
          Window.prototype.addEventListener=addEventListener;
          Window.prototype.removeEventListener=removeEventListener;
        }
      }
    })();
  }
// Production steps of ECMA-262, Edition 5, 15.4.4.18
// Reference: http://es5.github.io/#x15.4.4.18
if (!Array.prototype.forEach) {

  Array.prototype.forEach = function(callback, thisArg) {

    var T, k;

    if (this == null) {
      throw new TypeError(' this is null or not defined');
    }

    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
    var O = Object(this);

    // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
    // 3. Let len be ToUint32(lenValue).
    var len = O.length >>> 0;

    // 4. If IsCallable(callback) is false, throw a TypeError exception.
    // See: http://es5.github.com/#x9.11
    if (typeof callback !== "function") {
      throw new TypeError(callback + ' is not a function');
    }

    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
    if (arguments.length > 1) {
      T = thisArg;
    }

    // 6. Let k be 0
    k = 0;

    // 7. Repeat, while k < len
    while (k < len) {

      var kValue;

      // a. Let Pk be ToString(k).
      //   This is implicit for LHS operands of the in operator
      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
      //   This step can be combined with c
      // c. If kPresent is true, then
      if (k in O) {

        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
        kValue = O[k];

        // ii. Call the Call internal method of callback with T as the this value and
        // argument list containing kValue, k, and O.
        callback.call(T, kValue, k, O);
      }
      // d. Increase k by 1.
      k++;
    }
    // 8. return undefined
  };
}
/**
 * smooth-scroll v5.3.3
 * Animate scrolling to anchor links, by Chris Ferdinandi.
 * http://github.com/cferdinandi/smooth-scroll
 *
 * Free to use under the MIT License.
 * http://gomakethings.com/mit/
 */

(function (root, factory) {
	if ( typeof define === 'function' && define.amd ) {
		define('smoothScroll', factory(root));
	} else if ( typeof exports === 'object' ) {
		module.exports = factory(root);
	} else {
		root.smoothScroll = factory(root);
	}
})(window || this, function (root) {

	'use strict';

	//
	// Variables
	//

	var smoothScroll = {}; // Object for public APIs
	var supports = !!document.querySelector && !!root.addEventListener; // Feature test
	var settings, eventTimeout, fixedHeader;

	// Default settings
	var defaults = {
		speed: 500,
		easing: 'easeInOutCubic',
		offset: 0,
		updateURL: true,
		callbackBefore: function () {},
		callbackAfter: function () {}
	};

	//
	// Methods
	//

	/**
	 * A simple forEach() implementation for Arrays, Objects and NodeLists
	 * @private
	 * @param {Array|Object|NodeList} collection Collection of items to iterate
	 * @param {Function} callback Callback function for each iteration
	 * @param {Array|Object|NodeList} scope Object/NodeList/Array that forEach is iterating over (aka `this`)
	 */
	var forEach = function (collection, callback, scope) {
		if (Object.prototype.toString.call(collection) === '[object Object]') {
			for (var prop in collection) {
				if (Object.prototype.hasOwnProperty.call(collection, prop)) {
					callback.call(scope, collection[prop], prop, collection);
				}
			}
		} else {
			for (var i = 0, len = collection.length; i < len; i++) {
				callback.call(scope, collection[i], i, collection);
			}
		}
	};

	/**
	 * Merge defaults with user options
	 * @private
	 * @param {Object} defaults Default settings
	 * @param {Object} options User options
	 * @returns {Object} Merged values of defaults and options
	 */
	var extend = function ( defaults, options ) {
		var extended = {};
		forEach(defaults, function (value, prop) {
			extended[prop] = defaults[prop];
		});
		forEach(options, function (value, prop) {
			extended[prop] = options[prop];
		});
		return extended;
	};

	/**
	 * Get the closest matching element up the DOM tree
	 * @param {Element} elem Starting element
	 * @param {String} selector Selector to match against (class, ID, or data attribute)
	 * @return {Boolean|Element} Returns false if not match found
	 */
	var getClosest = function (elem, selector) {
		var firstChar = selector.charAt(0);
		for ( ; elem && elem !== document; elem = elem.parentNode ) {
			if ( firstChar === '.' ) {
				if ( elem.classList.contains( selector.substr(1) ) ) {
					return elem;
				}
			} else if ( firstChar === '#' ) {
				if ( elem.id === selector.substr(1) ) {
					return elem;
				}
			} else if ( firstChar === '[' ) {
				if ( elem.hasAttribute( selector.substr(1, selector.length - 2) ) ) {
					return elem;
				}
			}
		}
		return false;
	};

	/**
	 * Get the height of an element
	 * @private
	 * @param  {Node]} elem The element
	 * @return {Number}     The element's height
	 */
	var getHeight = function (elem) {
		return Math.max( elem.scrollHeight, elem.offsetHeight, elem.clientHeight );
	};

	/**
	 * Escape special characters for use with querySelector
	 * @private
	 * @param {String} id The anchor ID to escape
	 * @author Mathias Bynens
	 * @link https://github.com/mathiasbynens/CSS.escape
	 */
	var escapeCharacters = function ( id ) {
		var string = String(id);
		var length = string.length;
		var index = -1;
		var codeUnit;
		var result = '';
		var firstCodeUnit = string.charCodeAt(0);
		while (++index < length) {
			codeUnit = string.charCodeAt(index);
			// Note: there's no need to special-case astral symbols, surrogate
			// pairs, or lone surrogates.

			// If the character is NULL (U+0000), then throw an
			// `InvalidCharacterError` exception and terminate these steps.
			if (codeUnit === 0x0000) {
				throw new InvalidCharacterError(
					'Invalid character: the input contains U+0000.'
				);
			}

			if (
				// If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
				// U+007F, […]
				(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
				// If the character is the first character and is in the range [0-9]
				// (U+0030 to U+0039), […]
				(index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
				// If the character is the second character and is in the range [0-9]
				// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
				(
					index === 1 &&
					codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
					firstCodeUnit === 0x002D
				)
			) {
				// http://dev.w3.org/csswg/cssom/#escape-a-character-as-code-point
				result += '\\' + codeUnit.toString(16) + ' ';
				continue;
			}

			// If the character is not handled by one of the above rules and is
			// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
			// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
			// U+005A), or [a-z] (U+0061 to U+007A), […]
			if (
				codeUnit >= 0x0080 ||
				codeUnit === 0x002D ||
				codeUnit === 0x005F ||
				codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
				codeUnit >= 0x0041 && codeUnit <= 0x005A ||
				codeUnit >= 0x0061 && codeUnit <= 0x007A
			) {
				// the character itself
				result += string.charAt(index);
				continue;
			}

			// Otherwise, the escaped character.
			// http://dev.w3.org/csswg/cssom/#escape-a-character
			result += '\\' + string.charAt(index);

		}
		return result;
	};

	/**
	 * Calculate the easing pattern
	 * @private
	 * @link https://gist.github.com/gre/1650294
	 * @param {String} type Easing pattern
	 * @param {Number} time Time animation should take to complete
	 * @returns {Number}
	 */
	var easingPattern = function ( type, time ) {
		var pattern;
		if ( type === 'easeInQuad' ) pattern = time * time; // accelerating from zero velocity
		if ( type === 'easeOutQuad' ) pattern = time * (2 - time); // decelerating to zero velocity
		if ( type === 'easeInOutQuad' ) pattern = time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time; // acceleration until halfway, then deceleration
		if ( type === 'easeInCubic' ) pattern = time * time * time; // accelerating from zero velocity
		if ( type === 'easeOutCubic' ) pattern = (--time) * time * time + 1; // decelerating to zero velocity
		if ( type === 'easeInOutCubic' ) pattern = time < 0.5 ? 4 * time * time * time : (time - 1) * (2 * time - 2) * (2 * time - 2) + 1; // acceleration until halfway, then deceleration
		if ( type === 'easeInQuart' ) pattern = time * time * time * time; // accelerating from zero velocity
		if ( type === 'easeOutQuart' ) pattern = 1 - (--time) * time * time * time; // decelerating to zero velocity
		if ( type === 'easeInOutQuart' ) pattern = time < 0.5 ? 8 * time * time * time * time : 1 - 8 * (--time) * time * time * time; // acceleration until halfway, then deceleration
		if ( type === 'easeInQuint' ) pattern = time * time * time * time * time; // accelerating from zero velocity
		if ( type === 'easeOutQuint' ) pattern = 1 + (--time) * time * time * time * time; // decelerating to zero velocity
		if ( type === 'easeInOutQuint' ) pattern = time < 0.5 ? 16 * time * time * time * time * time : 1 + 16 * (--time) * time * time * time * time; // acceleration until halfway, then deceleration
		return pattern || time; // no easing, no acceleration
	};

	/**
	 * Calculate how far to scroll
	 * @private
	 * @param {Element} anchor The anchor element to scroll to
	 * @param {Number} headerHeight Height of a fixed header, if any
	 * @param {Number} offset Number of pixels by which to offset scroll
	 * @returns {Number}
	 */
	var getEndLocation = function ( anchor, headerHeight, offset ) {
		var location = 0;
		if (anchor.offsetParent) {
			do {
				location += anchor.offsetTop;
				anchor = anchor.offsetParent;
			} while (anchor);
		}
		location = location - headerHeight - offset;
		return location >= 0 ? location : 0;
	};

	/**
	 * Determine the document's height
	 * @private
	 * @returns {Number}
	 */
	var getDocumentHeight = function () {
		return Math.max(
			document.body.scrollHeight, document.documentElement.scrollHeight,
			document.body.offsetHeight, document.documentElement.offsetHeight,
			document.body.clientHeight, document.documentElement.clientHeight
		);
	};

	/**
	 * Convert data-options attribute into an object of key/value pairs
	 * @private
	 * @param {String} options Link-specific options as a data attribute string
	 * @returns {Object}
	 */
	var getDataOptions = function ( options ) {
		return !options || !(typeof JSON === 'object' && typeof JSON.parse === 'function') ? {} : JSON.parse( options );
	};

	/**
	 * Update the URL
	 * @private
	 * @param {Element} anchor The element to scroll to
	 * @param {Boolean} url Whether or not to update the URL history
	 */
	var updateUrl = function ( anchor, url ) {
		if ( history.pushState && (url || url === 'true') ) {
			history.pushState( null, null, [root.location.protocol, '//', root.location.host, root.location.pathname, root.location.search, anchor].join('') );
		}
	};

	/**
	 * Start/stop the scrolling animation
	 * @public
	 * @param {Element} toggle The element that toggled the scroll event
	 * @param {Element} anchor The element to scroll to
	 * @param {Object} options
	 */
	smoothScroll.animateScroll = function ( toggle, anchor, options ) {

		// Options and overrides
		var settings = extend( settings || defaults, options || {} );  // Merge user options with defaults
		var overrides = getDataOptions( toggle ? toggle.getAttribute('data-options') : null );
		settings = extend( settings, overrides );
		anchor = '#' + escapeCharacters(anchor.substr(1)); // Escape special characters and leading numbers

		// Selectors and variables
		var anchorElem = anchor === '#' ? document.documentElement : document.querySelector(anchor);
		var startLocation = root.pageYOffset; // Current location on the page
		if ( !fixedHeader ) { fixedHeader = document.querySelector('[data-scroll-header]'); }  // Get the fixed header if not already set
		var headerHeight = fixedHeader === null ? 0 : ( getHeight( fixedHeader ) + fixedHeader.offsetTop ); // Get the height of a fixed header if one exists
		var endLocation = getEndLocation( anchorElem, headerHeight, parseInt(settings.offset, 10) ); // Scroll to location
		var animationInterval; // interval timer
		var distance = endLocation - startLocation; // distance to travel
		var documentHeight = getDocumentHeight();
		var timeLapsed = 0;
		var percentage, position;

		// Update URL
		updateUrl(anchor, settings.updateURL);

		/**
		 * Stop the scroll animation when it reaches its target (or the bottom/top of page)
		 * @private
		 * @param {Number} position Current position on the page
		 * @param {Number} endLocation Scroll to location
		 * @param {Number} animationInterval How much to scroll on this loop
		 */
		var stopAnimateScroll = function (position, endLocation, animationInterval) {
			var currentLocation = root.pageYOffset;
			if ( position == endLocation || currentLocation == endLocation || ( (root.innerHeight + currentLocation) >= documentHeight ) ) {
				clearInterval(animationInterval);
				anchorElem.focus();
				settings.callbackAfter( toggle, anchor ); // Run callbacks after animation complete
			}
		};

		/**
		 * Loop scrolling animation
		 * @private
		 */
		var loopAnimateScroll = function () {
			timeLapsed += 16;
			percentage = ( timeLapsed / parseInt(settings.speed, 10) );
			percentage = ( percentage > 1 ) ? 1 : percentage;
			position = startLocation + ( distance * easingPattern(settings.easing, percentage) );
			root.scrollTo( 0, Math.floor(position) );
			stopAnimateScroll(position, endLocation, animationInterval);
		};

		/**
		 * Set interval timer
		 * @private
		 */
		var startAnimateScroll = function () {
			settings.callbackBefore( toggle, anchor ); // Run callbacks before animating scroll
			animationInterval = setInterval(loopAnimateScroll, 16);
		};

		/**
		 * Reset position to fix weird iOS bug
		 * @link https://github.com/cferdinandi/smooth-scroll/issues/45
		 */
		if ( root.pageYOffset === 0 ) {
			root.scrollTo( 0, 0 );
		}

		// Start scrolling animation
		startAnimateScroll();

	};

	/**
	 * If smooth scroll element clicked, animate scroll
	 * @private
	 */
	var eventHandler = function (event) {
		var toggle = getClosest(event.target, '[data-scroll]');
		if ( toggle && toggle.tagName.toLowerCase() === 'a' ) {
			event.preventDefault(); // Prevent default click event
			smoothScroll.animateScroll( toggle, toggle.hash, settings); // Animate scroll
		}
	};

	/**
	 * On window scroll and resize, only run events at a rate of 15fps for better performance
	 * @private
	 * @param  {Function} eventTimeout Timeout function
	 * @param  {Object} settings
	 */
	var eventThrottler = function (event) {
		if ( !eventTimeout ) {
			eventTimeout = setTimeout(function() {
				eventTimeout = null; // Reset timeout
				headerHeight = fixedHeader === null ? 0 : ( getHeight( fixedHeader ) + fixedHeader.offsetTop ); // Get the height of a fixed header if one exists
			}, 66);
		}
	};

	/**
	 * Destroy the current initialization.
	 * @public
	 */
	smoothScroll.destroy = function () {

		// If plugin isn't already initialized, stop
		if ( !settings ) return;

		// Remove event listeners
		document.removeEventListener( 'click', eventHandler, false );
		root.removeEventListener( 'resize', eventThrottler, false );

		// Reset varaibles
		settings = null;
		eventTimeout = null;
		fixedHeader = null;
	};

	/**
	 * Initialize Smooth Scroll
	 * @public
	 * @param {Object} options User settings
	 */
	smoothScroll.init = function ( options ) {

		// feature test
		if ( !supports ) return;

		// Destroy any existing initializations
		smoothScroll.destroy();

		// Selectors and variables
		settings = extend( defaults, options || {} ); // Merge user options with defaults
		fixedHeader = document.querySelector('[data-scroll-header]'); // Get the fixed header

		// When a toggle is clicked, run the click handler
		document.addEventListener('click', eventHandler, false );
		if ( fixedHeader ) { root.addEventListener( 'resize', eventThrottler, false ); }

	};

	//
	// Public APIs
	//

	return smoothScroll;

});
var App = (function () {

  //=== Use Strict ===//
  'use strict';

  //=== Private Variables ===//
  var body = document.body,
      enhanceClass = 'cutsmustard',
      toggledNavClass = 'nav-is-toggled',
      lastScrollY = 0,
      header = document.getElementById('js-header'),
      headerToggle = document.getElementById('js-header-toggle'),
      menu = document.getElementById('js-contents-menu'),
      menuContents = "",
      section = document.querySelectorAll('.section');

  //=== Private Methods ===//
  var cutsMustard = (function() {
    document.documentElement.className += ' ' + enhanceClass;
  }());

  //=== Scroll ===//
  var removeQuotes = function(string) {
    if (typeof string === 'string' || string instanceof String) {
        string = string.replace(/^['"]+|\s+|\\|(;\s?})+|['"]$/g, '');
    }
    return string;
  };

  var debounce = function(func, wait, immediate) {
    var timeout;
    return function() {
      var context = this, args = arguments;
      var later = function() {
        timeout = null;
        if (!immediate) func.apply(context, args);
      };
      var callNow = immediate && !timeout;
      clearTimeout(timeout);
      timeout = setTimeout(later, wait);
      if (callNow) func.apply(context, args);
    };
  };

  var throttle = function(callback, limit) {
    var wait = false;
    return function () {
      if (!wait) {
        callback.call();
        wait = true;
        setTimeout(function () {
          wait = false;
        }, limit);
      }
    };
  };

  var eventCheck = function() {
    var size = window.getComputedStyle(document.body,':after').getPropertyValue('content');
    return removeQuotes(size);
  };

  var onScroll = function() {
    if ( eventCheck() == "medium" ) {
      lastScrollY = window.pageYOffset;
      stickyElement(menu, header);
    } else {
      return;
    }
  };

  var onResize = throttle(function() {
    eventCheck();
    if ( menu.classList.contains('is-sticky') && eventCheck() == "small" ) {
      menu.classList.remove('is-sticky');
    }
  }, 100);

  var toggleNav = function(event) {
    if (body.classList.contains(toggledNavClass) ) {
      body.classList.remove(toggledNavClass);
    } else {
      body.classList.add(toggledNavClass);
    }
    event.preventDefault();
  };

  var stickyElement = function(element, offset) {
    var currentScrollY = lastScrollY,
    elementTop = element.offsetTop,
    offsetHeight = offset.clientHeight;

    if ( currentScrollY > offsetHeight ) {
      element.classList.add('is-sticky');
    } else if ( currentScrollY < offsetHeight && element.classList.contains('is-sticky') ) {
      element.classList.remove('is-sticky');
    } else {
      return;
    }
  };

  var createMenu = (function() {
    [].forEach.call(section, function(el) {
      var id = el.getAttribute('id'),
      link = "#" + id,
      text = el.getAttribute('id'),
      title = text.charAt(0).toUpperCase() + text.substring(1),
      newLine = "<a href='" + link + "' data-scroll>" + title + "</a>";
      menuContents += newLine;
    });
    menu.insertAdjacentHTML('beforeend', menuContents);
  })();

  var equalHeightBoxes = (function() {
    var boxes = document.querySelectorAll('.box');
    var tallest = 0;

    [].forEach.call(boxes, function(el) {
        var eleHeight = el.offsetHeight;
        tallest = (eleHeight > tallest ? eleHeight : tallest);
    });

    [].forEach.call(boxes, function(el) {
        el.style.height = (tallest / 16) + 2 + 'em';
        el.style.lineHeight = (tallest / 16) + 2 + 'em';
    });

  })();

  //=== Public Methods ===//
  function init() {

    // Listen for window scroll
    window.addEventListener('scroll', onScroll, false);

    // Listen for window resize
    window.addEventListener('resize', onResize, false);

    // Listen for Clicks on #js-nav-toggle
    headerToggle.addEventListener('click', toggleNav, false);

    // Fire Event Check Function
    eventCheck();

    // Initialize SmoothScroll
    smoothScroll.init({
      speed: 300,
      easing: 'easeInOutQuad',
      updateURL: false,
      offset: 24,
      callbackBefore: function ( toggle, anchor ) {}
    });

  }

  //=== Make Methods Public ===//
  return {
    init: init
  };

})();

App.init();

redpajama_set_name: RedPajamaGithub


The city hotel is only a 10-minute walk from some of Istanbul's top sights, including the Blue Mosque, Grand Bazaar, Egyptian Market, Hagia Sophia and Topkapi Palace. The hotel offers great public transport links too, with a tram stop and bus station just around the corner. The train station and the restaurants, bars and nightlife spots of Taksim are all approximately a 10-minute ride on public transport. Ataturk Airport is approximately 22 km from the business hotel and Sabiha Gökçen Airport is around 22 km away.
The air-conditioned hotel comprises a total of 62 rooms. In the air-conditioned establishment, travellers are welcomed at the reception area with 24-hour reception and a 24-hour check-in/check-out service. The upper floors of the accommodation can be accessed by lift. Amenities include a cloakroom, a safe and a currency exchange service. Wireless internet access is available to guests in the public areas. Among the culinary options available at the hotel are a restaurant, a café and a bar. Additional facilities at the establishment include a newspaper stand. Travellers arriving by car can leave their vehicles in the garage or in the car park (for a fee). Available services and facilities include room service and a laundry service. A bicycle hire service (for a fee) gives guests the opportunity to explore the surrounding area independently.
Each of the rooms is appointed with air conditioning, central heating, a kitchen and a bathroom. Many rooms feature a sea view, which further enhances the ambience. The carpeted accommodation units feature a double bed. Cots are available for younger guests. A safe and a minibar are also available. Guests will also find a tea/coffee station included as standard. Internet access, a telephone, a TV and WiFi (no extra charge) add to the comfort of the holiday. A shower and a bathtub can be found in the bathrooms. A hairdryer can also be found in each of the bathrooms.
The terrace is a great place to while away the time. The accommodation offers biking/mountain biking (for a fee) to travellers.
Catering options available at the hotel include bed and breakfast, half board and full board. Guests can choose to book options such as breakfast, lunch or dinner.


text:
NBC's Tom Brokaw Diagnosed With Cancer
NBC News says veteran newsman Tom Brokaw has cancer.
The network says Brokaw was diagnosed in August with multiple myeloma, a cancer affecting blood cells in the bone marrow.
Doctors are optimistic about his treatment.
In a statement released by NBC, Brokaw says he remains the luckiest guy he knows, and he looks forward to continuing his life and his work. He says he wants to keep his illness a private matter.
Brokaw turned 74 on Feb. 6. The onetime national news anchor is a special NBC News correspondent, and NBC says he has continued to work on projects during his treatment.
courtesy of Wkyc.com
- Breast Cancer	, information	, NBC	, Tom Brokaw

redpajama_set_name: RedPajamaCommonCrawl


Founded in 1987 by Captain Jeff Federko, Orca Charters has become one of Lake Ontario's most respected Charter and Guide services. Based out of Pulaski, NY, Orca Charters offers Lake Fishing, River Fishing, Wading Trips or can build a custom trip to create an experience you will not soon forget.
Fishing with his Dad and brothers since the age of 6, Captain Jeff has many years of fishing in a variety of locations throughout New York State and the Northeast. His love for the Salmon River and tributaries began in 1972 and after his first trip on Lake Ontario in 1984 he started writing his future as a charter captain.
As an experienced guide, trained in First Aid & CPR, Captain Jeff has safely completed hundreds of successful charters on Lake Ontario and throughout the region. Captian Jeff is a New York State licensed fishing guide and holds a United States Coast Guard License. Captain Jeff leverages the latest electronics and gear to enhance the experience of each client. Rain or shine, you can find Captain Jeff on the water. His dedication and experience makes him one of the most sought after guides in the Pulaski & Salmon River area. He is known for a "no nonsense" and "gimmick free" approach to fishing and has a reputation as being an authentic master of the sport.
Most trips start at one of the several docks he owns or at a pre-designated meeting spot. Following a short orientation and safety briefing clients are on the water and ready for a great day of fishing on Lake Ontario or one of the nearby rivers. With a fleet of boats, Captain Jeff has the flexibility to provide trips depending on the client's goals, skill level and fishing conditions. It is very seldom trips end without fish to clean and pack for clients.
If you have questions or are ready to book your trip with us, click here or call Captain Jeff today (607) 759-1674.


Honored and remembered since the Middle Ages, Saint Anne was one of the patron saints. Celebrate the good works and sainthood of Saint Anne with a Saint Anne's Day card. Remind someone of her kindness with a card that says you care.
Inside Text: May the Feast Day of St. Anne bring light, strength and grace into your family life.
Artist Notes: Share this lovely card with friends and family this year, as it honors St. Anne on her special day. She is the Patron Saint of Family and this is an excellent opportunity to share these important values with others, that she represents. On the left side of the light blue card, is an image of St. Anne, in white, with a three ringed halo over her head. She stands in front of a partial stained glass background and to her right is a golden cross that is radiating light in a circle. The wording on the card is hand lettered in elegant white lettering, with the words "St. Anne's Day" and "Model of Family and Humility". The inside wording to all is "May the Feast Day of St. Anne bring light, strength and grace into your family life."
Inside Text: Sending you wishes of hope and peace for Saint Anne's Feast Day.
Artist Notes: Feast Day of Saint Anne greeting card. Image: 8th Century Coptic icon painting of Saint Anne. © Designed by Shoaff Ballanger Studios.
Artist Notes: Illustration of St. Anne and Mary. The inside of the card has been left blank for you to pen your own special message.
Inside Text: Warm Wishes on this Special Day. Happy Feast of St. Anne!
Artist Notes: Illustration of St. Anne. The inside of the card has been left blank for you to pen your own special message.
Artist Notes: Lobster and shellfish are served in France for their Feast of St Anne. The inside of the card has been left blank for you to pen your own special message.


A Wisconsin election brings double disappointment for Democrats.
This article is part of David Leonhardt's newsletter. You can sign up here to receive it each weekday.
Democrats received doubly bad news in a Wisconsin Supreme Court election this week.
Brian Hagedorn, a conservative judge who also worked for former Gov. Scott Walker, seems to have beaten the liberal candidate, Lisa Neubauer. The margin — 0.5 percentage points, or about 6,000 votes — is narrow enough that Neubauer is requesting a recount. But a 6,000-vote lead rarely disappears in a recount.
So even if conservatives lose a seat next year, they will keep their majority for the redistricting process after the 2020 census. That process draws boundaries for both congressional and state-legislature districts, which means it will play a big role in shaping future Wisconsin politics.
The second bit of bad news for Democrats was the outcome's political signal.
Wisconsin Supreme Court races are statewide, and Hagedorn's win suggests that Wisconsin remains up for grabs heading into President Trump's re-election campaign. Republican voters now seem quite energized, and turnout was high in conservative areas, like Waukesha County, just west of Milwaukee. "The GOP's win in Wisconsin Supreme Court race showed a base that's waking up," Reid Wilson of The Hill noted.
Conservative writers were celebrating the victory.
There are still reasons to consider Trump an underdog in Wisconsin next year. His approval rating there is only slightly above 40 percent, according to Morning Consult. And as Craig Gilbert of The Milwaukee Journal Sentinel noted, turnout in Milwaukee, which is strongly Democratic, often slips in off-year elections like this one.
But Democrats would be mistaken to dismiss the Wisconsin result. Their big wins in last year's midterms were foreshadowed by wins in state and local races in 2017 and early 2018, and there weren't many unpleasant surprises like Hagedorn's victory.
If you are not a subscriber to this newsletter, you can subscribe here. You can also join me on Twitter (@DLeonhardt) and Facebook.


text:
Tag Archives: good
Articles, Football, Sport
Wayne Rooney: Great, good or flat track bully?
November 25, 2014 Dom Kureen	Leave a comment
Wayne Rooney recently won his 100th England cap a few weeks beyond his 29th birthday, ramming home a penalty against Slovenia for his 44th international goal. The new skipper followed that strike with a brace against Scotland a few days later, but did this merely reaffirm his reputation as a player who excels against lesser opposition?
Rooney first made back page headlines as a 16 year-old, when he caressed a sumptuous winner for Everton against title-chasing Arsenal in 2002, curling a 25 yard shot beyond despairing Gooners custodian David Seaman.
It seemed that England had a future star on their hands, and Sven Goran Eriksson was quick to recognise the wonderkid's talent with Rooney's Three Lions' début making him the youngest player to represent the country a few months after his 17th birthday (a record since broken by Theo Walcott.)
An exciting four goal showing at Euro 2004 was followed by a lucrative £27m transfer to Manchester United, where the now 18 year-old enjoyed a dream début, netting a Champions hat-trick in a 6-2 home win against Fenerbahce, ensuring instant adoration amongst the Old Trafford faithful.
Despite continuing to prosper domestically, Rooney's international form since those teenage kicks has fluctuated between feeble in major tournaments and exhilarating in friendlies or qualifiers.
TOP ENGLAND GOALSCORERS
1. Bobby Charlton: 49 in 106 matches
2. Gary Lineker: — 48 in 80
3. Wayne Rooney: – 46 in 101
4. Jimmy Greaves: – 44 in 57
5. Michael Owen: – 40 in 89
The player's forgettable showing at this year's World Cup only added fuel to the fire of those who see Rooney as little more than a flat track bully, someone who excels against relatively low standard opposition, whilst struggling to make an impact among the elite.
In 2014 it hardly helps that the national captain is flanked by a host of average players such as James Milner, Phil Jagielka, Rickie Lambert, Jordan Henderson ad nauseam, although the emergence of Raheem Sterling, Danny Welbeck, Daniel Sturridge and Jack Wilshire does offer cause for optimism.
It's difficult to criticise "Wazza's" goal scoring record for England, 46 goals in 101 matches, making him the third most prolific scorer in the country's history and a mere three goals shy of fellow Man United icon Bobby Charlton's record of 49 (scored at an almost identical rate.)
Ultimately perhaps it is due to the lofty expectations English football fans and the country's media place upon the shoulders of promising young players that so many fall short of perceived potential. Comparing a 17 year-old Wayne Rooney to a 17 year-old Pele (a regular occurrence in tabloid newspapers in 2003) was like receiving the moon and demanding the stars as an aperitif.
Inevitably England's third most prolific goal scorer of all time will take the top spot sooner rather than later (barring injury) and in that sense he can't be considered a failure.
The fact that this should be wrapped up whilst the attacker is still in his 20's is another gleaming feather in Rooney's already overflowing cap, but to be considered a true great he must surely shine at Euro 2016 and/or the 2018 World Cup.
Only then will we know if Wayne's world was one where the hype was disproportionate to the unfolding reality.
EnglandgoodGreatRooneyWayneWazza
Written by Dom Kureen
As a young rapscallion stranded on an Island, my time is split between writing, performing spoken word, wrestling alligators and delivering uplifting pep talks to hairdressers before they prune me. I meditate and wash daily when possible.
May 3, 2014 Dom Kureen	Leave a comment
May charity spotlight: Foyle Search and Rescue
Foyle Search and Rescue was established as a charity in July 1993 and has adopted the role of protecting human life in and around the River Foyle in Derry / Londonderry, one of the most dangerous and fastest flowing rivers in Europe, infamous for its high level of mortality.
The charity and its volunteers are keenly aware of the huge responsibility that goes with this role. Their dedication in patrolling the river and its banks in all seasons and in all weathers is the single greatest asset of the charity.
Damon Albarn's Gorillaz band mates looked different in real life.
Around 3000 lives have been saved since the group was founded. As a small, independent charity, Foyle Search and Rescue are dependent on the kindness of the public to continue their amazing work, that's where you can help.
If you'd like to donate to the cause or find out more information, simply follow this link.
andcharitydeedsDerryfoylegoodkarmalivesrescuesavesearch
The site of Dom Kureen
Philiosophy
Various mediums
Cowes Mylk
In my time as a journalist I've uncovered many stories which have stirred my innards, but perhaps no[...]
Interviews with Creative Minds. No.22: Samuel Z Jones (part deux)
The 22nd instalment of the Creative Minds series welcomes back a previous guest for the first time -[...]
Tupac & Michael Jackson Holograms among 2019 IW Festival headliners!
Isle of Wight Festival insiders have revealed that there will be two posthumous headliners on the bi[...]
Live spoken word: The Wedding Speaker
Here's a piece I made earlier... [...]
Featured Charity - Shelter
When I was a child I was told by a teacher at my primary school that I should fear and ignore homele[...]
ArticlesAudioFeatured ArtistFeatured CharityPoetryReviewsVideo
Welcome to kureen.co.uk, a website devoted to bringing you the best videos, interviews, reviews, enlightening info, podcasts, music and art!
Website by Chemical Gdns.


Episode 17: The Flower Garden Girl. Steve introduces you to Anna Looper, known on the internet as "The Flower Garden Girl". She shares her tips and tricks for successful gardening.
12:00PM-1:20PM CT The Self-Sufficient Homestead with Johnny Max and the Queen.
Episode 23: DIY Wifi and the Good Wife Guide. John and Tammy look at gadgets to capture Wifi from long distances and have the usual banter.
1:20PM-1:55PM CT: Hunt Gather Grow Eat with Jason Akers.
Episode 8: Salt. Jason talks about the essential role that salt plays in the human body and in civilization. Why salt equals liberty in some cases. Origin of words like "salary" and "salad". Importance of salt in food production and in war.


text:
Home> Software
Microsoft Readies Game Mode For Windows 10 Creator's Update
by Brett Howse on January 25, 2017 1:00 PM EST
The Windows 10 Creator's Update was announced in October, at the same event where the Surface Studio was launched. It promises many new features for makers, but when makers want to unwind, they want to play a PC game. Today Microsoft is giving a glimpse at one of the new features also coming with the Creator's Update, and it is Game Mode.
Microsoft wants to improve the overall gaming experience, and they have focused on several areas where gaming on the PC is let down, especially compared to the console where the experience is known to all parties, be them developers, or end users, well ahead of time. With Game Mode, Microsoft is continuing its steps toward bridging the divide between the gaming PC, and the Xbox.
Some parts of Game Mode have already appears in the last several builds of the Windows 10 Insider Preview, but today the full Game Mode experience will be launching as part of the latest Fast Ring preview.
Game Mode is an optional setting, which can be leveraged for either Win32 games, or UWP games. The experience will be better on UWP games, only because a UWP game has known limits on what is running, whereas a Win32 game is boundless. When enabled, Game Mode dedicates more of the CPU and GPU time to the game when it is in the foreground, which should, in theory, help with overall game performance. In an interview yesterday, Kevin Gammill, Partner Group Program Manager, Xbox Platform, discussed how this helps performance. Kevin was less concerned about peak framerate, but discussed how Game Mode can assist with a more consistent framerate, meaning less stops and stutters when the action gets intense.
Game Mode settings in the Game Bar, not enabled yet
Game Mode will set the CPU core affinity, and thread priority, the maximize the CPU resources dedicated to the game. Microsoft has found that there is a lot of thread contention when gaming, often from programs and resources that are not part of the gaming experience. The idea of a higher priority thread is not new, but enabling it on-the-fly automatically is a nice way to take advantage of this feature. System resources for other applications will be diminished, of course, since there is only so much CPU time available, so background activities that require a lot of CPU time are going to suffer. Game Mode can be disabled or enabled as needed though, allowing some flexibility here. The same idea is done on the GPU, where more GPU time slices are allocated to the game. The fundamentals are similar to how the Xbox One operates when gaming.
Game Mode will work in conjunction with other technologies which make gaming on the PC an easier experience, such as NVIDIA's GeForce Experience, which will optimize games for NVIDIA based cards.
Microsoft has been heavily updating the gaming capabilities of Windows, ever since the launch of Windows 10, and Game Mode appears to be another nice addition. It should be available tomorrow in the next Fast Ring build of the Windows Insider Preview.
Update 01/27: Now that the first Windows Insider build of Windows 10 with the new Game Mode is out (15019), Microsoft has sent over an additional note on game compatibility.
We're aware that the Windows Insider build going out this week has a few platform related bugs, unrelated to the new features included within the build, that are impacting the ability to play some popular games. We're working to address these platform bugs so that Insiders will be able to take full advantage of the new gaming features coming in the Windows 10 Creators Update. For more information, please visit the Windows Experience blog.
Morawka - Wednesday, January 25, 2017 - link
that's 2-3 games. your using a silly insignificant nuance to explain why you dont want windows 10. Reply
dstarr3 - Wednesday, January 25, 2017 - link
I said earlier, "I'll switch to Windows 10 eventually. But gaming will have nothing to do with why." Reply
0ldman79 - Friday, January 27, 2017 - link
How about the fact that 1511 was awesome and 1607 is a buggy slow piece of crap?
I'm waiting until the next major release, but if it continues this way I'm going back to 7 on all of my machines. Waiting to type for around a minute because of nothing is a new Windows 10 "feature". I was very happy with 1511. 1607 does this on three different machines, completely different builds, two of them won't even run updates correctly anymore.
I wasn't a "crazy Win 7 lifer" until 1607. 1511 was Windows 7 with a different interface. 1607 is Vista. Reply
Michael Bay - Wednesday, January 25, 2017 - link
It has been pretty navigable for a while now, at least on par with android.
...which is not a high bar to jump, admittedly. Reply
Alexvrb - Wednesday, January 25, 2017 - link
Unnavigable how? You can't click buttons and type? Also, while there's nothing inherently wrong with UWP, they allow devs to convert (wrap) Win32 software into a self-contained package for the Store using the desktop bridge. Packaged as an app it gains simplied install and clean uninstall benefits too.
Even if you completely ignore the store, it's still better than 7 and there's a lot of tweaking you can do if you're a stickler for disabling features. Reply
willis936 - Wednesday, January 25, 2017 - link
I hope this is just a seamless setting I can tick to set affinity in windows and not have to deal with xbox bloat or annoying overlays. Reply
There's no "bloat", really. Just because it's a thing doesn't mean there's a performance impact. It's like the Steam overlay... in both cases I just forget it exists until I need it. Or you can disable it if you want. Open it up, turn on game mode, make sure DVR is off, and disable the game bar etc. Reply
Zak - Thursday, January 26, 2017 - link
When a game bar shows up in a Steam game, that's bloat and annoying. Reply
smorebuds - Friday, January 27, 2017 - link
Is it really though? Just wait a bit or press shift-tab and it'll go away. ezpz Reply
Alexvrb - Monday, January 30, 2017 - link
No, you can say it's annoying, but that's not the same as bloat. Bloat would be like hey, this is slowing down my system. You know eating my rams and goats and cee pee yew circles! Disable it, ignore it, use it, whatever - don't have a cow, man.
Also it tends to only pop up when summoned. Steam has an overlay for ages, nobody cares. MS adds one, everyone loses their minds! Reply


text:
Q: Express file upload with multer, but not as middleware I'd like to use multer in my express route block, i.e. not as middleware. The multer config I have works as middleware, but I want to have a couple of checks before calling multer.
So I've tried this, to no avail:
/*
 * Upload a file
 */
const MediaPath = "/var/tmp";
var multer  = require('multer'); // Multer is for file uploading
var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, MediaPath  + '/' + req.params.organisation + '/' + req.params.table + '/');
  },
  filename: function (req, file, cb) {
    // TODO - remove the time and timezone from ISO string, resolve the correct filename, create thumbnail,
    var date = new Date();
    cb(null, req.params.id + '.' + date.toISOString());
  }
})
//var upload = multer({ storage: storage });
var upload = multer({ storage: storage }).single('file');

router.post('/file/:organisation/:table/:id', function (req, res, next){
   db.resolveTableName( req )
  .then( table => {
    auth.authMethodTable( req )
    .then( function() {
console.log('Uploading a file: ');
        upload(req, res, function( err ) {
          if( err ) {
console.log('Upload error' );
            res.status(500).json( err );
          }
console.log('Upload success' );
          res.status(200).json("success");
        });
    })
    .catch( function( error ) {
      res.status(401).json('Unauthorized');
    });
  })
  .catch( function(e) {
    res.status(400).json('Bad request');
  });
});

Funnily I get no error, so 200 is returned, but I get no uploaded file.
I took that pattern from here: https://www.ibm.com/developerworks/community/blogs/a509d54d-d354-451f-a0dd-89a2e717c10b/entry/How_to_upload_a_file_using_Node_js_Express_and_Multer?lang=en
Any ideas?

A: Fixed it by moving my controls to a middleware to call before multer, so I can use multer as middleware (inspired by this comment Nodejs Express 4 Multer | Stop file upload if user not authorized):
var preUpload = function( req, res, next ) {
   db.resolveTableName( req )
  .then( table => {
    auth.authMethodTable( req )
    .then( function() {
         next();
    })
    .catch( function( error ) {
      res.status(401).json('Unauthorized');
    });
  })
  .catch( function(e) {
    res.status(400).json('Bad request');
  });
};

router.post('/file/:organisation/:table/:id', preUpload, upload.single('file'), function (req, res, next){
  console.log(req.body, 'Body');
  console.log(req.file, 'files');
  res.end();
});

redpajama_set_name: RedPajamaStackExchange


All orders ship within 5 days to United States addresses only. Normal order processing can take between 1-3 business days (Monday – Friday).
Currently, we do not ship to U.S. Territories, APO/FPO, Canada or other international addresses. Please note that orders could arrive in multiple packages.
There is a flat-rate shipping fee of $5.00 per order. Some products may have additional handling fees on top of this. Please use our Shipping Calculator to see the exact shipping costs for your order.
We do not accept returns. All sales are final. However, if you received a damaged or defective product, we will be glad to make it right.


text:
VC Jason Penry Resigns, Erika Chudy Named Interim
Written by Arkansas State University
Local & Regional | News
JONESBORO – Vice Chancellor for University Advancement Jason Penry is leaving Arkansas State University, A-State Chancellor Kelly Damphousse announced on Friday.
Penry is resigning after seven years with Arkansas State to take a position at another institution, which will announce his appointment at a later date.
"Jason told me last week about an opportunity that he has been exploring. He has been a passionate supporter of Arkansas State University and a key player in the leadership of the university," Damphousse said. "I want to thank him for his service and the impact he has had on both A-State and Northeast Arkansas."
Joining Arkansas State in 2012 as chief of staff, Penry was appointed vice chancellor in 2013. Under his leadership, A-State has recorded six of its seven all-time best years of giving, including the largest single gift to date, the $10 million plus naming of the Neil Griffin College of Business. He was also the primary liaison for A-State in the process that brought the second medical school (and first osteopathic medical school) to the state — the New York Institute of Technology College of Osteopathic Medicine which is located in A-State's Wilson Hall.
Damphousse has named Erika Krennerich Chudy as the interim vice chancellor for University Advancement. Chudy has served as the director of planned giving since joining A-State in 2011.
"I have great faith in Erika's leadership during this time of transition. We will begin a national search for a new leader for our advancement division as soon as possible," Damphousse said. "Jason has built great relationships for A-State and a solid foundation for the right individual to join our team and move us forward."
Original article source: http://www.astate.edu/news/vc-jason-penry-resigns-erika-chudy-named-interim | Article may or may not reflect the views of KLEK 102.5 FM or The Voice of Arkansas Minority Advocacy Council
Martin Luther King Jr. Day Celebration Set for Monday, Jan. 18
01/14/2021 JONESBORO – Activities associated with the 2021 Northeast Arkansas Dr. Martin L. King Jr. Day celebration, "Truth, Love and Justice," have been announced by the Northeast Arkansas Dr. Martin Luther Read more
@AStateBowling Claims Lady Techsters Invitational Title
Story Links SAVANNAH, TENN. (1/17/20) – Despite getting off to a slow start, the Arkansas Women's bowling team persevered on the final day of competition to claim the Lady Techsters Invitational title with Read more


A course winner here last year, the Willie Mullins-trained Some Neck can land the historic Goffs Thyestes Chase at Gowran Park this afternoon.
He accounted for his better-fancied stable companion Up For Review to take a beginners' chase at the track last February and was at his very best when making a winning seasonal return in a Grade 2 novice chase at Punchestown in November. Although relatively inexperienced over fences, he might well improve on his seasonal return and the ground should not be an issue.
The star of the show is certainly Cheltenham Gold Cup favouritePresenting Percy which is on the comeback trail in the Grade 2 John Mulhern Galmoy Hurdle. He had a couple of runs under his belt when winning this race last year and while this's not the case this time, his undoubted class should see him through.
Racing begins with the ultra-competitive Langton House Hotel Handicap Hurdle and a chance is taken with the Des McDonogh-trained Howluckycanwebe which might benefit from the application of a hood. She was little free when tried at Clonmel early last month but didn't do too badly under the circumstances behind All The Chimneys.
Another difficult handicap is the Adare Manor Opportunity Handicap Hurdle where the vote goes to the Jessica Harrington-trained Rovetta which is up in trip after a promising outing at Limerick last month where she was runner-up to the well-fancied Moskovite.
The Willie Mullins-trained Voix Des Tiep was nicely clear of the remainder when just losing out to his own stable companion Small Farm at Limerick over Christmas and perhaps he can beat The Big Dog to win the Connolly's RED MILLS Irish EBF Auction Maiden Hurdle under Paul Townend. The latter went close at Leopardstown last month but might not be open to same improvement.
Mullins has the first two, Cilaos Emery and Duc Des Genievres, in the early betting for the PMF Beginners Chase and the pair, among the entries for the Arkle Novices' Chase at the Cheltenham Festival, could well fight it out. Ruby Walsh has ridden 6 winners from just 26 rides over fences in Ireland this season and is likely to be well-fancied to land the spoils on the former but it is Townend (19 wins from 90 rides over fences in Ireland this season) who is taken to come out on top on the younger horse which had four of today's rivals behind him when runner-up to A Plus Tard at Naas last time. He drops back in trip for this.
Selections: 12.45 Howluckycanwebe; 1.20 Voix Des Tiep; 1.50 Presenting Percy; 2.25 Rovetta; 3.00 Some Neck; 3.35 Duc Des Genievres (NAP); 4.10 Front View.


text:
Charles City – jednostka osadnicza w Stanach Zjednoczonych, w stanie Wirginia, siedziba administracyjna hrabstwa Charles City.

CDP w stanie Wirginia

redpajama_set_name: RedPajamaWikipedia


Pathfinder Press has just reprinted Rosa Luxemburg Speaks, which contains the writings of one of the most outstanding Marxists of the 20th century.
Born in tsarist-occupied Poland in 1871, Luxemburg joined the revolutionary movement as a high school student in the 1880s. For more than four decades-until her assassination in Berlin in 1919 during the German revolution-she was a proletarian revolutionist. The lectures, articles, essays, and resolutions included in this collection address the central questions confronting the working-class movement in her-and our-epoch: reform versus revolution, imperialist war, and the fight to transform the trade union movement.
In "Reform or Revolution," written in 1899, the 28-year- old Luxemburg takes on Eduard Bernstein, then one of the most established and respected spokespeople of the Socialist International. Bernstein argued that capitalism had reached a new stage that would allow it to develop unimpeded by economic and social crises. Because of this, he said, the working class should limit itself to fighting for reforms within the framework of capitalism; over time these reforms would lead to socialism.
Luxemburg rejected this theory, noting that it was a "program of reaction." Communists participate wholeheartedly in the struggle for the "amelioration of the conditions of the workers," she said. But those who "pronounce themselves in favor of the method of legislative reform in place of and in contradistinction to the conquest of political power and social revolution, do not really choose a more tranquil, calmer, and slower road to the same goal, but a different goal. Our program becomes not the realization of socialism, but the reform of capitalism: not the suppression of the system of wage labor, but the diminution of exploitation."
Luxemburg was among the first leaders of the communist movement to point to the accelerating drive toward the first imperialist slaughter and to challenge those who were inclined to buy into the nationalist rhetoric of the bourgeoisie. "We, who base ourselves on the materialistic conception of history and on scientific socialism, are convinced that militarism can only be abolished from the world with the destruction of the capitalist class state," she wrote in 1911 in an article titled "Peace Utopias."
"What is Economics?" was intended as the first chapter of a book based on a series of lectures Luxemburg gave to participants at the German Social Democratic Party school in Berlin between 1907 and 1912. "An ordinary mortal reading [the typical economics texts] can't help wondering why his head is spinning like a top," she jokes before offering her students a lively and clear explanation of the subject.
Included in Rosa Luxemburg Speaks is "Organizational Question of Social Democracy," where Luxemburg explains her views on the revolutionary party; "Socialism and the Churches"; "The Mass Strike, the Political Party, and the Trade Unions"; "Against Capital Punishment"; and "The Junius Pamphlet: The Crisis in the German Social Democracy," one of the initial policy statements of those who rejected support for the German government in the war and continued to fight for an internationalist perspective.


text:
Q: Why is 'using forEach with a function literal' considered a bad practice in Dart? I'm getting this lint when using forEach:
Avoid using `forEach` with a function literal.

This a sample code:
class AB {
  int data;
  AB(this.data);
  int call() => data;
}

void main() {
  var myList = [AB(1), AB(3)];
  myList.forEach((e) => print(e()));  // <--- lint raised here
}

A: The lint is based on the style guide, which says that you should use a for/in loop instead.
for (var e in myList) {
  print(e());
}

That is both more efficient and more readable.


text:
FRESH ISSUES
DAILY FEED
IMMUNITY BOOST: The Healing Benefits of Bone Broth
Written by Kara Thompson
Courtesy of Wishbone Wellbeing
It seems like all I'm thinking about these days is my health—and I know I'm not alone. It's always important to nourish and care for your body, but it's even more essential right now. I, along with many others, have increased my supplement intake, prioritized rest, and have been more mindful of the food I'm eating.
All of this got me thinking about how I frequently see wellness experts and health coaches boast about the benefits of bone broth. However, I never fully understood why bone broth can help our immune systems.
Jennifer Salcido, ND, founder of Santa Barbara Integrative Medicine, says there are various ways the seemingly magical broth can help our bodies out. "Bone broth is rich in amino acids, which the immune system is dependent on to function properly. Amino acids regulate the immune system and are needed to produce antibodies that fight infection," she explains.
She also adds that some amino acids have antiviral properties, such as proline. "Proline is especially abundant in bone broth and can stimulate the immune system to produce white blood cells and natural killer cells to fight infection. At the same time, proline can reduce inflammation, protect the brain and nerves, and repair damaged tissues."
So how can we incorporate this healing broth into our routines? I talked to Isa Bourbon, founder of Wishbone Wellbeing, a Santa Barbara-based bone broth company, to learn more about her business, as well as source ideas and inspiration.
Why did you want to start a bone broth company?
For a while, before settling on Wishbone, I cooked for women and their families postpartum. While doing so, I had the opportunity to deliver meals packed with all the things women need after giving most of their nutrients to their newborn. One of the most important components of that meal plan was bone broth.
I searched everywhere for an option and found nothing up to par. Either it wasn't organic, or it was sourced from all over the country, or it delivered was in plastic packaging. Nothing checked all the boxes. So, it slowly dawned on me, that I might have to be the one to make the complete bone broth elixir.
The idea of creating an ethical, health-beneficial product was and still is exciting. Building a brand like Wishbone Wellbeing marries my core values of ethical practices, health, and community while also being an exciting career path.
Courtesy of Isa Bourbon
Do you source ingredients locally? Absolutely! We use 100% organic ingredients and source as locally as possible. No ingredient is "extra" or "filler." We source most of our produce through Given's Farm in Goleta (5 minutes from our kitchen). What we don't source directly through the farm, we order through Gladden and Sons in Goleta or the Isla Vista Co-op, both who source as locally as possible.
The chicken bones are from Mary's Organic Farm, about 3 hours north of us, and the grass-fed beef bones are from Sun Fed Organics in Northern California. We sacrificed a little distance with the beef bones to ensure the highest quality USDA Organic certified, grass-fed, grass-finished product.
Do you think bone broth itself is a superfood?
The way we make it, yes! Bone broth alone, no veggies or other add-ins, is still incredibly health supportive. The bone marrow and collagen help heal the gut and give vital nutrients to the body. We take the old tradition practiced for generations and give it a new health supportive spin. There is not one star ingredient. Every aspect plays its role in creating a comprehensive vitamin, mineral, protein, and collagen-rich concoction.
How is Wishbone Wellbeing different from other bone broth companies?
We are a 100% women-owned and run business. Bone broth has been associated with keto, intermittent fasting, and post-workout fuel, which has been traditionally male dominated. The top companies are all run by men and catered to that demographic. While we absolutely support that, and all the people that use it that way, we have another perspective. We see it as self-care—as another way to love yourself. That's why we say it's like giving yourself a hug from the inside out. Wishbone Broth is coming onto the scene with a feminine touch. No less tough, just maybe a little more elegant.
Wishbone Broth is coming onto the scene with a feminine touch. No less tough, just maybe a little more elegant.
How can people order your bone broth?
We do a weekly contact-free delivery in Santa Barbara County. We currently have one option—a 4 pack of 32 ounce Wishbone Broth, frozen and delivered in a little cooler bag to ensure it stays cold.
The broth can live in the freezer for up to a year, or once thawed, it lasts 3 weeks in the fridge.
Try adding bone broth to:
Braised greens
Any type of soup! (Just substitute for whatever stock or water the recipe calls for)


Additional Requirements: Internet Connection, Battle.net registration, and Battle.net Desktop Application required to play.
Darkness Falls. Heroes Rise. Internet Connection, Battle.net registration, and Battle.net Desktop Application required to play.


text:
Welcome to ABC Technology and Games. Skip to: Content Filter by Content Type Search
Technology and Games: Content from Across the ABC
How does this site work?
Search Technology and Games
In search of the perfect phone
Nick Ross ABC Technology and Games Updated 21 Sep 2011 (First posted 20 Sep 2011)
I won't leave it so long next time.
Over the past few months (actually it's 10 months now - I've left this so long as new phones kept coming out) I've used a great many phones. In the past I'd bring together the latest bunch and do a formal group test, but quite simply, I'm over that. These days I tend to know whether I'll like a phone in two minutes. Living with it for a while then confirms my opinion. We seem to have reached a phone launch hiatus so here we go.
What follows is a report on me living with a heap of different phones: which ones I liked best and why. You may find it useful or completely irrelevant as people will have different requirements. But rather than give points for features and value, I just wanted to find what the best phone was by process of elimination. I've included prices (based on prices from shopbot.com.au) but these are simply a guide as many people will get cheap/free phones on a cap plan.
Let me know if you think I've got something very wrong and should take a second look at a model. Or if you agree. It might be that some bugs have been fixed since the following phones launched. The contenders are:
Sony Ericsson Xperia Play
Sony Ericsson Xperia arc
INQ Cloud Touch
LG Optimus 2X
LG Optimus 3D
Motorola Atrix
HTC Desire Z
HTC Incredible S
HTC Wildfire S
HTC Desire S
Samsung Galaxy S II (GS2)
Windows Phone 7 (WP7)
HTC HD 7
HTC Mozart
I've also spent a brief amount of time with the new Blackberries and some Nokias.
Samsung's Galaxy S II wins but isn't perfect. HTC's WP7-based HD7 is a close second. HTC's Wildfire S and Legend make good budget alternatives. LG Optimus 3D is very good. iPhone 4 is not worth buying now. Forget Nokia. Windows Phone 7 phones are all similar and generally good. I think they will proliferate thanks to Windows 8. Blackberry's new consumer-friendly handsets will hopefully be successful and are still the only choice for secure messaging.
Forget formal testing
The thing with phones is that they can look amazing when you're first introduced to them. Features can look impressive and super-fast components sound great. But I've learned the hard way many times: the best-looking phones can drive you mad over time. The first Samsung Galaxy S was great when it launched. It got rave reviews but a few weeks later many people, including me, found it ground to a halt. Many reviewers were wowed that Motorola's Atrix could transform into a laptop and media server. But who ended up using those features?
What I look for
My number one most important thing is responsiveness. If it isn't superfast these days, forget it. Thus my verdict on Nokia's N8 took less than ten seconds to be formed - swiping the screen side to side came with almost a full-second delay. That heralded the end of Nokia's great comeback and hammered the final nail into the future of the Symbian operating system in my world. A few days of living with the phone, that initial theory was utterly confirmed. Less than ten seconds!
Number two is intuitive operation. I don't expect to have to look at instruction manuals anymore. Looking back I think it might be Apple's iPod that rendered doing so obsolete. Tech should just work these days.
Number three is a lack of proprietary software nonsense. Apple, Android and WP7 apps are about the only ones I'd consider - I can transfer purchases to future devices. Those manufacturers that try and lock you into music downloads that only work on one phone are a pariah to me nowadays. 'Buying' music from Napster and Sony that doesn't work anymore has put me off for life: it's not "buying" if I don't own it. It's "renting". Stick your Digital Rights Management (DRM) where the sun don't shine. Even the contender for best overall phone, Samsung's GS2, has features like this: its Social Hub, Game Hub, Music Hub and special apps are things I refuse to buy into.
But then I can change phones every few days and am not a regular user. That said, I have still been at the point where you have to upgrade a phone after two years and suddenly found that I can't take my investments with me. Plus, the company that promised to support them forever doesn't care anymore. Note too, that despite promises, Samsung's Music Hub still doesn't work in Australia.
A final mention should go to battery life. People can benchmark phone batteries all they want. But it's only living with a phone that will tell you if it's any good or not - and then only in relation to other phones. The point is largely moot these days as many phones are borderline identical in terms of hardware. However, some force you to sync when you don't want to and this can severely hamper battery life. I expect them to last a full day, without charging, under heavy use. This does not include playing games and watching video.
Next G
When I decided to start doing this test, at the beginning of the year, I was going to award bonus points for being Next G optimized. But not anymore. It used to be the case that Next G really did work better in more places, but I'm not the only one thinking that performance now isn't what it was. There's also Telstra's insistence on installing crApps on phones that can't be removed. Some like, 'Stock Market syncing' can't be stopped and force you to sync for updates - unforgiveable in the current market where it's clearly the super-lean operating systems which work fastest and have the best battery life. Bloatware apps that you don't need hamper both of these features.
If you live in a remote area, you'll already know which network you HAVE to buy into. The differences in network performance are not what they once were for everyone else.
You'll be able to read far more in-depth reviews elsewhere, but this is what I found in my search for the perfect phone - comparing each one to the previous model.
I started with the iPhone 4. This was my stalwart phone for months. But my god I got bored with it. I needed to use it because of exclusive features and apps like Facetime and Audio note. But I was sick of its poor syncing and lack of customisation. On the one hand, it's easily the best choice for beginners who want a smart phone that's reliable, easy to use and has heaps of different apps. On the other, its successor is about to be launched and you'd be mad to buy one unless you got a killer deal.
Hopefully the new iOS 5 operating system will fix all syncing issues. Time will tell. Ultimately, it's a solid benchmark of a phone and the one against which others are based. But for some people, mainly power users, there's now much better to be had. What killed it for me was getting an iPad 2. Getting this meant I had no need of an iPhone anymore.
HTC Desire HD and Desire Z
Next up were HTC's Desire HD (large screen version of the Desire - arguably the first Android phone to catch up to Apple) and the Desire Z (bit bulky but has a slide-out keyboard). These are both great Android phones in terms of hardware (although the Z's keyboard was mediocre compared with previous HTC numbers like the TyTN) and software but, in Australia, they both appeared late and are locked to Vodafone (because of a global exclusivity deal). In Australia this is not good and HTC's rapid rise as a household name has stalled somewhat because of it. Few people are going to switch to the underperforming Vodafone network to get their hands on these handsets... especially now, in the face of some serious competition, including from HTC itself.
Sony Xperia Play
The Xperia Play ($350ish) is the PlayStation phone - the top slides up to allow you to use a PS3-style gamepad to play games. It was a little small for my hands and I was a bit disappointed with the build quality. But this isn't a bad phone and if you play heaps of games on Android it's a boon. However, despite promises of many PlayStation games appearing for it, we're yet to see them. The launch of a 4G version shows that there are legs in this phone for now. Launch bugs saw that some Android apps couldn't stop syncing and this affected battery life. Apps also crashed more than on other phones. Hopefully those issues are being ironed out.
Sony Xperia arc
The Xperia arc ($400ish) is Sony's super-thin Android phone. It too suffered from the Play's sync problems. It felt too small with fiddly buttons - to me. The ability to plug in a mini HDMI cable might suit some people, but ultimately, I saw no reason to keep on with it - just too fiddly and small. I had a brief go with the Xperia Neo, which is essentially a slightly-fatter version (on Telstra) that was otherwise near-identical. All had good cameras - especially in low light - which could be important.
Moving on to Huawei's X5 ($350ish), I actually preferred it to the Sonys. It was the right size and a bog-standard, no frills Android phone which just worked. After a couple of weeks it started to periodically drop its internet connection though - something which could be down to Android, third-party apps or dodgy hardware - it's impossible to tell. Its other downside was a seriously-poor camera. However, for a cheapish phone, it was fast, responsive and did everything it was supposed to. I was impressed. The downside for it now is that top-brand competitiors have plummeted in price while this has stayed at a similar point. It's not that cheap anymore.
The next phone was LG's Optimus 2X ($400ish). It has a dual core processor (Using Nvidia's Tegra 2 platform) but, quite simply, I saw not enough difference from the Huawei. It also had special LG-branded social networking apps built into the operating system. These couldn't be upgraded to the latest unbranded application versions - very annoying. All round - Meh.
Motorola's Atrix
Next up was Motorola's Atrix ($450ish). Coming hot off the heals of the previous two phones, which felt near identical, my main view of the Atrix was simply this: its power button made it harder to turn on quickly. Its laptop and media server transformations were simply gimmicks. Its MotoBlur app, which sits on top of Android, is a turd of a programme that you can't get rid of and seems to slow the whole phone down. Disappointing. The X5 worked better at day-to-day functions and still costs $100 less.
The little red INQ Cloud Touch ($350ish with plan) impressed me (if not other reviewers). It's cute, has unique-looking icons and is integrated with Facebook very well. It's cheap and plastic but manages to look stylish and different. I had no issues with speed until I started multitasking: its low-powered processor maxed out easily - you could feel the phone quickly heat up and almost see the small battery's meter going down before your eyes. It comes with a plan on Vodafone and is otherwise pretty good if you're not a power user. I liked it.
HTC Desire S, Incredible S and Wildfire S
HTC's Desire S ($400ish), Incredible S ($420) and Wildfire S ($250ish) got a brief look in and were generally impressive. The first two represent decent mid-range Android choices (and make good use of the HTC Sense application which sits on top of Android). Both now stand in the shadow of HTC's dearer flagship, the Sensation ($500ish), though. The Wildfire S makes for a great budget choice - sacrificing speed and screen resolution but not build quality and design.
HTC Sensation vs Samsung Galaxy S II
I've been an HTC fan for the past two years, but over the past several months the brand has slipped. The highly-anticipated Desire HD and the Z, appearing only on Vodafone (and late too), annoyed people. The launch of the Incredible S in Australia, after the rest of the world got the Sensation, was really annoying. When the Sensation (with its 1.2GHz processor) did appear it was second best, to what is widely-regarded as the best Android phone (and overall best phone) in the world: the similarly-specified Samsung Galaxy S II ($550). The Sensation boasted about its new Sense interface over the top of Android, but in reality, the latest version of Android is only hampered by third-party software. The Sensation felt noticeably slower than the GS2. Sure, there are some good tracking and security features included, but you can get those on other Android platforms (including the GS2) without buying into Sense.
The screen of the GS2 is large and very bright. The camera is excellent. It's very fast and responsive. After months of using it day to day, it still hasn't slowed down.
It does still have some silly annoyances. We've mentioned the Samsung Hubs before, but you can ignore these. Beeping to say it's fully charged is moronic and it wakes me up every night that I forget to mute it (not great for setting alarms). The keyboard layouts could be better. Syncing with the proprietary Kies system is better than it was but still a pain to use and sometimes it doesn't hang up a phone call properly. It's also prone to ear-dialling during a call. But these are minor niggles and other phones suffer things like this and worse. The handling, the speed, the raw Android nature of the phone make it the best Android device on the market and arguably the best of all the phones.
Its popularity has put it in short supply though, so you may struggle to buy one. Because it is so popular, its price hasn't plummeted like the competition and so there are still good choices to be had elsewhere. HTC's Incredible S and Desire S are good cheaper options. HTC's Wildfire S and Legend are good if you can deal with the lower-resolution screens (the metal-Macbook-look-a-like-latter is still arguably the prettiest (and toughest) phone on the market, even if it is getting old). Both can be had under $300.
But there is another Android contender: LG's Optimus 3D ($500ish). This is a monster of a phone with a special dual-core, dual-channel processor, massive battery and large screen. This on its own makes the Optimus fly along and the battery lasts for longer than the competition. But it also has dual cameras which allow you to take 3D photos and video, an HDMI port for playing 3D movies back on 3D TVs and a 3D screen which can play 3D games. I usually dismiss 3D as a gimmick but the pictures and video consistently wowed everyone I showed them to. I really liked this phone. But ultimately, it's much bulkier than the svelte GS2. Note that HTC's rival EVO 3D is imminent.
The two phones I used extensively here were the HTC Mozart ($280ish) and HTC HD 7 ($400ish). I've also used models from LG and Samsung briefly. The HD7 was my favourite mainly for its size. I really like WP7. Almost all the phones seem identical which makes for continuity missing in the Android platform but it's not as harshly-controlled as Apple's iPhone system. The integration with Xbox works very well and I've seen gamers swoon at the ability to earn Xbox Gamer points on their phone. The syncing with Windows Live, Office Live, Zune and Xbox can do your head in, but once set up it all works well. That is, except for the inability to natively sync with Outlook. That's a big fail.
But it's so responsive, its apps already look more-polished than many of Android's and there are many high-quality games available. With the announcement of Windows 8 and its tile system, I can see phones like this really taking off down the line... although then they'd be called WP8, presumably. Nonetheless, I miss my HD7 and will be switching back to it from the SGS2 for a while.
That the Mozart costs under $300 makes it a highly-attractive smartphone on a budget too.
During testing I was sent the C7 ($330ish) and the keyboard-sporting E7 ($400ish). A few minutes passed and I hated both of them. So I gave them to our Nokia-tragic developer. A few days later he came back all giddy saying they were amazing... "You can actually 'touch' the screens!!!" So ended Nokia's hopes of actually competing in this event. They're in a different league right now.
There is hope, however. We saw a prototype of the forthcoming Meego-based N9. It looks good. However, it looked good in the same way that the doomed HP TouchPad looked good. Let's hope it doesn't go the same way.
Living with Blackberries is tricky if you don't do that already. However, the original Blackberry Torch was definitely a phone that I felt I could live with if I wanted to carry a Blackberry around with me. It passed all of my requirements for speed, intuitiveness (at least for the main functions) and responsiveness. Recently I was sent the Torch 9860 (which is similar but without the slide-out screen) and the 9900 which is like the previous Bold but with a touchscreen and latest operating system. Both impressed me after a brief play, and judging by reviews from others they are very well thought of. They deserve to be mentioned, but I wonder if people still buy Blackberries unless their companies force them to? We've heard a great deal in the past year about companies allowing users to use their own mobile phones at work - they take better care of them being one major benefit. It's a funny time for Blackberry, they're still the benchmark for secure messaging but the importance of that seems to be diminishing. Let's hope the new models continue to make people WANT to use them.
There still is no perfect phone. The Galaxy S II though seems to be the closest we have right now. The iPhone can't be recommended anymore because it's about to be superseded. If you can't afford the GS2 and want to stay with Android, try HTC's Incredible S or Desire S. The Wildfire S and Legend are cheaper still.
But Android needs to be perpetually managed if you want to make the best of it - switching syncing on and off manually is a necessary ritual if you want to extend the battery life. It will be a bothersome pain for many novice smartphone users. The iPhone and WP7 phones tend cause less hassles, in this regard, for the uninitiated.
If you're heavily into Xbox or your life revolves around Microsoft Office, then a WP7 phone (they're all good) is a fine choice. They're also good for those bored of Android and iPhones. HTC's HD7 is the best I used but the Mozart makes a great budget alternative.
If you want an iPhone, wait until we see what the imminent iPhone 5 is like before buying.
Nokia? Seriously? Need a cheap $50 expendible phone? Then maybe. Otherwise...
Blackberry? They needed to get more consumer friendly and they have. Let's hope it pays dividends. Still the only choice for secure (especially corporate) messaging.
Naturally I can't test everything (I couldn't get Samsung's Android Nexus S ($300ish) in for example) but the key players are covered. If you have any recommendations or if you disagree with any of the above, let us know below.
This site is where you will find ABC stories, interviews and videos on the subject of Technology and Games. As you browse through the site, the links you follow will take you to stories as they appeared in their original context, whether from ABC News, a TV program or a radio interview. Please enjoy.
ABC iView iPhone App
ABC Download This Show
ABC Good Game iPhone App
ABC Good Game Android App
ABC The Brief iPad App


Our concern is always to offer you the best support.
Get the latest information leaflets from MindLINK for you practice here.
Increase your range and get more clients.
You are welcome to call us at 0049 89 69 38 62 67 or send us an e-mail.
Because I do care of myself!
Flyer with information for clients about the MindLINK technology, the areas of application and other products.
With a blank box to add contact information of you your practice.


text:
Where do access rights not apply?
The main places where access rights are not exercisable are:
· Houses and other residences, and sufficient space around them to give residents reasonable privacy and lack of disturbance this will often be the garden area.
· Other buildings, works and structures, and the areas around them (curtilages).
· Land where crops are growing. Grass is not treated as a crop, except hay and silage in the late stages of growth. You can exercise access rights on field margins.
· Land next to and used by a school.
· Places, such as visitor attractions, which charge for entry.
· Land on which building or engineering works are being carried out, or which is being used for mineral working or quarrying.
· Land developed and in use for a particular recreational purpose, where the exercise of access rights would interfere with this use.
· Land set out for a particular recreational purpose or as a sports or playing field, when it is being used for that purpose and exercise of the rights would interfere with the use. But rights never apply to specially prepared sports surfaces golf greens, tennis courts or bowling greens.


text:
Q: Deny list and Allow list for Azure Web App I have an Azure Web app running behind the Azure Application gateway which is configured in WAF mode. I have allowed only Azure Gateway IP and our own public/proxy IP to connect Azure Wab App which means all traffic is being routed to Web is being through Application Gateway only.
Now, I want to DENY access to specific list of IPs to my Azure Web App. I am not sure how and where can i configure this DENY list ? Thanks in advance!

A:
Now, I want to DENY access to specific list of IPs to my Azure Web
  App.

Based on my knowledge, maybe you can use IP Restrictions to allow some IP to access your app.
More information about IP Restrictions, please refer to this article.

Update:
Thanks for Saurabh Singh share, customer can edit web.config to add IP list:
     <security>
       <ipSecurity allowUnlisted="true">
        <add ipAddress="111.223.118.66" allowed="false"/>
     </ipSecurity>


Warning: this is a movie review written by a blogger who happened to like history, especially on World War II. So, expect some spoilers here. Heck, there are many books tell the story about Dunkirk already, it is a movie about a history anyway, a real one, not an alternate one. Bear with it. Lol.
One of the best feeling when you watch a movie based on factual history is that you know how it ends. When you watch Letters from Downfall/Der Untergang (Hirschbiegel, 2004) you won't be expecting Hitler won the war, and ultimately rule the world, right ? It is the same here.
I'll explain a little bit about the background of the movie itself, since the background is only implied shortly on the movie. The title, Dunkirk refer to a place when one of the most amazing evacuation ever recorded in the history of mankind. Dunkirk or Dunkerque in French, is a region located in North French, it is the place when the British, Canadian, Belgian, and French Soldier are being evacuated to the coast of England. What makes this evacuation amazing is the fact that they did evacuate around 400,000 soldiers in 9 days using not only military ships, but also civillian ships. I think this is what the Indonesian New Order called about SISHANKAMRATA (Sistem Pertahanan dan Keamanan Rakyat Semesta/People's Universal Defense and Security System), lol.
I'll be extracting P. K. Ojong's view from Perang Eropa I (2002) on Dunkirk in this paragraph. In the first half of World War II's European theater, German troops easily breach through French's defense with heavy tanks through the amazing commands from Henk Guderian, German's Panzer Unit Legend. Their strategy on attacking French is a surprise Blitzkrieg through the Ardennes, unprotected by the Maginot Line which ended up as a Pincer Formation as the German are also attacking through Belgiuma and Netherland. Long story short, the Allies which include the British, Canadian, and Belgian army are surrounded and pushed back to Dunkirk beaches.
This is where the story start in Dunkirk (2017). It is narrated by three different views, the land that covers a week time of the Dunkirk war, the sea that covers one day, and the air that covers one hour. These line are non-linear, but at some points, the crossed with each other. In the land, the story is narrated from a surviving British soldier, Tommy (Fionn Whitehead), who is desperately trying to escape Dunkirk in any way possible. In the sea, story is narrated from a group of British civillian Peter (Tom Glynn-Carney), Mr. Dawson (Mark Rylance), and George (Barry Keoghan) who are a part of a recreational boat called "The Moonshine" which embark in a mission to transfer escaping soldiers in Dunkirk to Dover England. While in the air, is narrated from Collins (Jack Lowden) and Farrier (Tom Hardy) a pair of British Royal Air Force (RAF) pilot which is a part of a Spitfire squadron.
Each of these people are sharing their own horrors along the Dunkirk throughout the English Channel up until Dover. All of them have to face a part of German superiority during the first half of the European theater in World War II. Tommy have to face the bombardment of the Luftwaffe (German Air Force) while "competing" with his fellow British soldier to be the first to escape, while Peter, Mr. Dawson, and George have to go through a conflict with a shellshocked soldier saved by them at the sea while saving armies from a drowning warships under a Heinkel bombardment, and the RAF have to provide an aerial cover for the evacuation. Can you imagine the intensity ? You might not now, but don't worry, Christoper Nolan will help you to feel so.
Nolan is a genius. No doubt about that. We can see in his earlier works, the Dark Knight Trilogy (2005-2012), The Prestige (2006), Inception (2010), and Interstellar (2014). Along with his tandem, Hans Zimmer, he can draw the audience into the movie itself. Well, this time, it is a war movie. A war movie throughout the eyes of the loser, where escape is the way to win. With his amazing cinematography, minimalist dialogues, and delicate timing of the background music, it creates a great atmosphere. I indulge it happily. There are some parts that made me cover my ears, held my breath as if I am a claustrophobic or in fear of drowning, acts up as I am a Spitfire pilot, and I even cried a little bit during some dramatic scenes.
The scenes feels real. It really maximize the dolby technology. The sound of bullet hitting the boat's steel wall, or the psychological terror of German warplane which deliberately installed with a mechanism that allows them to give a squeling sounds as it get close to the ground, and even the sound of torpedo that silently hitting the boat. The minimum dialogue helps to set up the intensity of the scenes, it makes you focus on the whole scene –the sets, the people, the surrounding, rather than to the actors themselvs. It simply drags you into the movie.
If you ask me about the actors, I don't know most of them. Honestly, I only recognize Tom Hardy and Cillian Murphy. Also Barry Keoghan for looking like Ezra Miller (LOOOLLL). But, I give all of them two thumbs up. All of them are equally great. Even the One Direction guy (which pointed out in the end by my wife), Harry Styles.
If there is anything bad to say about this movie, it lacks of bonds with the characters. The intensity of the movie, is traded with the character bonding. You know, sometimes, after watching a movie, you feel like you want to be in the movie, let's say, after watching Inception, you want to be the part of the group that dives in into people's dream. You want to be friend with them. Not with this one though.
I don't know how to compare this with any other war movie or any other Nolan's movie. This is the first time I feel something like this. It is almost like watching a perfect horror movie, without the traumatic aftermath. It is a technical masterpiece from Nolan, and I give it a solid 9 out of 10.


text:
Q: How to avoid the new line and extra space issue? Because I have contionously getting this error "unterminated string literal" This is my onchange function, But i keep getting this error SyntaxError: unterminated string literal
 function OrganizationPrefill(type){
    if(type == 'org' ){
        var orgdts = "<?php echo $orgDets['state']; ?>";

        var myStr = "<?php echo $orgDets['address']; ?>";
        var newStr = myStr.replace('\n', '');

        $('#states  option[data='+orgdts+']').prop('selected','selected');
        $("#address").val(newStr);
        $("#zip").val("<?php echo $orgDets['zip']; ?>");
        $("#city").val("<?php echo $orgDets['city']; ?>");
    }else if(type == 'orguser'){
        var myStr1 = "<?php echo $doctorDets['address']; ?>";
        var newStr1 = myStr.replace('\n', '');

        $("#address").val(myStr1);
        $("#zip").val("<?php echo $doctorDets['zip']; ?>");
        $("#city").val("<?php echo $doctorDets['city']; ?>");
        $('#states').val("<?php echo $doctorDets['state']; ?>");
    }
}

This is the address that I have in my database
Al Ameen
CCNA street
uzbaskistan
I want these 3 things in a single line, I already tried trim,str_replace but cant get the correct solution can anyone please assit me
What I need is ==>
Al Ameen CCNA street uzbaskistan

A: Thanks Everyone, Now its Working. This is my answer
function OrganizationPrefill(type){
        if(type == 'org' ){
            var orgdts = "<?php echo $orgDets['state']; ?>";
            <?php $orguserAddr = str_replace(array("\n", "\r"), ' ', $orgDets['address']); ?>

            $("#address").val("<?php echo $orguserAddr; ?>");
            $('#states  option[data='+orgdts+']').prop('selected','selected');
            $("#zip").val("<?php echo $orgDets['zip']; ?>");
            $("#city").val("<?php echo $orgDets['city']; ?>");
        }else if(type == 'orguser'){
            <?php $userAddr = str_replace(array("\n", "\r"), ' ', $doctorDets['address']); ?>

            $("#address").val('<?php echo $userAddr; ?>');
            $("#zip").val("<?php echo $doctorDets['zip']; ?>");
            $("#city").val("<?php echo $doctorDets['city']; ?>");
            $('#states').val("<?php echo $doctorDets['state']; ?>");
        }
    }


Bitterroot Valley rail service gets underway again this weekend. MRL will run a nine car train from Missoula to Darby and back. The plan is for the train to run early Saturday.
The communities served by MRL are to be complimented for their work to get this service restored. Trains will run two to three times per month.