text:
YUI.add('series-cartesian', function (Y, NAME) {

/**
 * Provides functionality for creating a cartesian chart series.
 *
 * @module charts
 * @submodule series-cartesian
 */
var Y_Lang = Y.Lang;

/**
 * An abstract class for creating series instances with horizontal and vertical axes.
 * CartesianSeries provides the core functionality used by the following classes:
 *

 *
{{#crossLink "LineSeries"}}{{/crossLink}}

 *
{{#crossLink "MarkerSeries"}}{{/crossLink}}

 *
{{#crossLink "AreaSeries"}}{{/crossLink}}

 *
{{#crossLink "SplineSeries"}}{{/crossLink}}

 *
{{#crossLink "AreaSplineSeries"}}{{/crossLink}}

 *
{{#crossLink "ComboSeries"}}{{/crossLink}}

 *
{{#crossLink "ComboSplineSeries"}}{{/crossLink}}

 *
{{#crossLink "Histogram"}}{{/crossLink}}

 *

 *
 * @class CartesianSeries
 * @extends SeriesBase
 * @constructor
 * @param {Object} config (optional) Configuration parameters.
 * @submodule series-base
 */
Y.CartesianSeries = Y.Base.create("cartesianSeries", Y.SeriesBase, [], {
    /**
     * Storage for `xDisplayName` attribute.
     *
     * @property _xDisplayName
     * @type String
     * @private
     */
    _xDisplayName: null,

    /**
     * Storage for `yDisplayName` attribute.
     *
     * @property _yDisplayName
     * @type String
     * @private
     */
    _yDisplayName: null,

    /**
     * Th x-coordinate for the left edge of the series.
     *
     * @property _leftOrigin
     * @type String
     * @private
     */
    _leftOrigin: null,

    /**
     * The y-coordinate for the bottom edge of the series.
     *
     * @property _bottomOrigin
     * @type String
     * @private
     */
    _bottomOrigin: null,

    /**
     * Adds event listeners.
     *
     * @method addListeners
     * @private
     */
    addListeners: function()
    {
        var xAxis = this.get("xAxis"),
            yAxis = this.get("yAxis");
        if(xAxis)
        {
            this._xDataReadyHandle = xAxis.after("dataReady", Y.bind(this._xDataChangeHandler, this));
            this._xDataUpdateHandle = xAxis.after("dataUpdate", Y.bind(this._xDataChangeHandler, this));
        }
        if(yAxis)
        {
            this._yDataReadyHandle = yAxis.after("dataReady", Y.bind(this._yDataChangeHandler, this));
            this._yDataUpdateHandle = yAxis.after("dataUpdate", Y.bind(this._yDataChangeHandler, this));
        }
        this._xAxisChangeHandle = this.after("xAxisChange", this._xAxisChangeHandler);
        this._yAxisChangeHandle = this.after("yAxisChange", this._yAxisChangeHandler);
        this._stylesChangeHandle = this.after("stylesChange", function() {
            var axesReady = this._updateAxisBase();
            if(axesReady)
            {
                this.draw();
            }
        });
        this._widthChangeHandle = this.after("widthChange", function() {
            var axesReady = this._updateAxisBase();
            if(axesReady)
            {
                this.draw();
            }
        });
        this._heightChangeHandle = this.after("heightChange", function() {
            var axesReady = this._updateAxisBase();
            if(axesReady)
            {
                this.draw();
            }
        });
        this._visibleChangeHandle = this.after("visibleChange", this._handleVisibleChange);
    },

    /**
     * Event handler for the xAxisChange event.
     *
     * @method _xAxisChangeHandler
     * @param {Object} e Event object.
     * @private
     */
    _xAxisChangeHandler: function()
    {
        var xAxis = this.get("xAxis");
        xAxis.after("dataReady", Y.bind(this._xDataChangeHandler, this));
        xAxis.after("dataUpdate", Y.bind(this._xDataChangeHandler, this));
    },

    /**
     * Event handler the yAxisChange event.
     *
     * @method _yAxisChangeHandler
     * @param {Object} e Event object.
     * @private
     */
    _yAxisChangeHandler: function()
    {
        var yAxis = this.get("yAxis");
        yAxis.after("dataReady", Y.bind(this._yDataChangeHandler, this));
        yAxis.after("dataUpdate", Y.bind(this._yDataChangeHandler, this));
    },

    /**
     * Constant used to generate unique id.
     *
     * @property GUID
     * @type String
     * @private
     */
    GUID: "yuicartesianseries",

    /**
     * Event handler for xDataChange event.
     *
     * @method _xDataChangeHandler
     * @param {Object} event Event object.
     * @private
     */
    _xDataChangeHandler: function()
    {
        var axesReady = this._updateAxisBase();
        if(axesReady)
        {
            this.draw();
        }
    },

    /**
     * Event handler for yDataChange event.
     *
     * @method _yDataChangeHandler
     * @param {Object} event Event object.
     * @private
     */
    _yDataChangeHandler: function()
    {
        var axesReady = this._updateAxisBase();
        if(axesReady)
        {
            this.draw();
        }
    },

    /**
     * Checks to ensure that both xAxis and yAxis data are available. If so, set the `xData` and `yData` attributes
     * and return `true`. Otherwise, return `false`.
     *
     * @method _updateAxisBase
     * @return Boolean
     * @private
     */
    _updateAxisBase: function()
    {
        var xAxis = this.get("xAxis"),
            yAxis = this.get("yAxis"),
            xKey = this.get("xKey"),
            yKey = this.get("yKey"),
            yData,
            xData,
            xReady,
            yReady,
            ready;
        if(!xAxis || !yAxis || !xKey || !yKey)
        {
            ready = false;
        }
        else
        {
            xData = xAxis.getDataByKey(xKey);
            yData = yAxis.getDataByKey(yKey);
            if(Y_Lang.isArray(xKey))
            {
                xReady = (xData && Y.Object.size(xData) > 0) ? this._checkForDataByKey(xData, xKey) : false;
            }
            else
            {
                xReady = xData ? true : false;
            }
            if(Y_Lang.isArray(yKey))
            {
                yReady = (yData && Y.Object.size(yData) > 0) ? this._checkForDataByKey(yData, yKey) : false;
            }
            else
            {
                yReady = yData ? true : false;
            }
            ready = xReady && yReady;
            if(ready)
            {
                this.set("xData", xData);
                this.set("yData", yData);
            }
        }
        return ready;
    },

    /**
     * Checks to see if all keys of a data object exist and contain data.
     *
     * @method _checkForDataByKey
     * @param {Object} obj The object to check
     * @param {Array} keys The keys to check
     * @return Boolean
     * @private
     */
    _checkForDataByKey: function(obj, keys)
    {
        var i,
            len = keys.length,
            hasData = false;
        for(i = 0; i < len; i = i + 1)
        {
            if(obj[keys[i]])
            {
                hasData = true;
                break;
            }
        }
        return hasData;
    },

    /**
     * Draws the series is the xAxis and yAxis data are both available.
     *
     * @method validate
     * @private
     */
    validate: function()
    {
        if((this.get("xData") && this.get("yData")) || this._updateAxisBase())
        {
            this.draw();
        }
        else
        {
            this.fire("drawingComplete");
        }
    },

    /**
     * Calculates the coordinates for the series.
     *
     * @method setAreaData
     * @protected
     */
    setAreaData: function()
    {
        var w = this.get("width"),
            h = this.get("height"),
            xAxis = this.get("xAxis"),
            yAxis = this.get("yAxis"),
            xData = this._copyData(this.get("xData")),
            yData = this._copyData(this.get("yData")),
            direction = this.get("direction"),
            dataLength = direction === "vertical" ? yData.length : xData.length,
            xOffset = xAxis.getEdgeOffset(xAxis.getTotalMajorUnits(), w),
            yOffset = yAxis.getEdgeOffset(yAxis.getTotalMajorUnits(), h),
            padding = this.get("styles").padding,
			leftPadding = padding.left,
			topPadding = padding.top,
			dataWidth = w - (leftPadding + padding.right + xOffset * 2),
			dataHeight = h - (topPadding + padding.bottom + yOffset * 2),
			xMax = xAxis.get("maximum"),
			xMin = xAxis.get("minimum"),
			yMax = yAxis.get("maximum"),
			yMin = yAxis.get("minimum"),
            xScaleFactor = dataWidth / (xMax - xMin),
			yScaleFactor = dataHeight / (yMax - yMin),
            graphic = this.get("graphic"),
            xcoords,
            ycoords;
        graphic.set("width", w);
        graphic.set("height", h);
        //Assuming a vertical graph has a range/category for its vertical axis.
        if(direction === "vertical")
        {
            yData = yData.reverse();
        }
        this._leftOrigin = Math.round(((0 - xMin) * xScaleFactor) + leftPadding + xOffset);
        this._bottomOrigin = Math.round((dataHeight + topPadding + yOffset));
        if(yMin < 0)
        {
            this._bottomOrigin = this._bottomOrigin - ((0 - yMin) * yScaleFactor);
        }
        xcoords = this._getXCoords(xData, xMin, dataWidth, xScaleFactor, xOffset, dataLength, leftPadding);
        ycoords = this._getYCoords(yData, yMin, dataHeight, yScaleFactor, yOffset, dataLength, topPadding);
        this.set("xcoords", xcoords);
		this.set("ycoords", ycoords);
        this._dataLength = dataLength;
        this._setXMarkerPlane(xcoords, dataLength);
        this._setYMarkerPlane(ycoords, dataLength);
    },

    /**
     * Used to cache xData and yData in the setAreaData method. Returns a copy of an
     * array if an array is received as the param and returns an object literal of
     * array copies if an object literal is received as the param.
     *
     * @method _copyData
     * @param {Array|Object} val The object or array to be copied.
     * @return Array|Object
     * @private
     */
    _copyData: function(val)
    {
        var copy,
            key;
        if(Y_Lang.isArray(val))
        {
            copy = val.concat();
        }
        else
        {
            copy = {};
            for(key in val)
            {
                if(val.hasOwnProperty(key))
                {
                    copy[key] = val[key].concat();
                }
            }
        }
        return copy;
    },

    /**
     * Sets the marker plane for the series when the coords argument is an array.
     * If the coords argument is an object literal no marker plane is set.
     *
     * @method _setXMarkerPlane
     * @param {Array|Object} coords An array of x coordinates or an object literal
     * containing key value pairs mapped to an array of coordinates.
     * @param {Number} dataLength The length of data for the series.
     * @private
     */
    _setXMarkerPlane: function(coords, dataLength)
    {
        var i = 0,
            xMarkerPlane = [],
            xMarkerPlaneOffset = this.get("xMarkerPlaneOffset"),
            nextX;
        if(Y_Lang.isArray(coords))
        {
            for(i = 0; i < dataLength; i = i + 1)
            {
                nextX = coords[i];
                xMarkerPlane.push({start:nextX - xMarkerPlaneOffset, end: nextX + xMarkerPlaneOffset});
            }
            this.set("xMarkerPlane", xMarkerPlane);
        }
    },

    /**
     * Sets the marker plane for the series when the coords argument is an array.
     * If the coords argument is an object literal no marker plane is set.
     *
     * @method _setYMarkerPlane
     * @param {Array|Object} coords An array of y coordinates or an object literal
     * containing key value pairs mapped to an array of coordinates.
     * @param {Number} dataLength The length of data for the series.
     * @private
     */
    _setYMarkerPlane: function(coords, dataLength)
    {
        var i = 0,
            yMarkerPlane = [],
            yMarkerPlaneOffset = this.get("yMarkerPlaneOffset"),
            nextY;
        if(Y_Lang.isArray(coords))
        {
            for(i = 0; i < dataLength; i = i + 1)
            {
                nextY = coords[i];
                yMarkerPlane.push({start:nextY - yMarkerPlaneOffset, end: nextY + yMarkerPlaneOffset});
            }
            this.set("yMarkerPlane", yMarkerPlane);
        }
    },

    /**
     * Gets the x-coordinates for a series. Used by the setAreaData method.
     * Returns an array when an array is received as the first argument.
     * Returns an object literal when an object literal is received as the first argument.
     *
     * @method _getXCoords
     * @param {Array|Object} xData An array of data values mapped to the x axis or an
     * object literal containing key values pairs of data values mapped to the x axis.
     * @param {Number} xMin The minimum value of the x axis.
     * @param {Number} dataWidth The width used to calculate the x-coordinates.
     * @param {Number} xScaleFactor The ratio used to calculate x-coordinates.
     * @param {Number} xOffset The distance of the first and last x-coordinate from the
     * beginning and end of the x-axis.
     * @param {Number} dataLength The number of data points in the arrays.
     * @param {Number} leftPadding The left padding of the series.
     * @return Array|Object
     * @private
     */
    _getXCoords: function(xData, xMin, dataWidth, xScaleFactor, xOffset, dataLength, leftPadding)
    {
        var isNumber = Y_Lang.isNumber,
			xcoords,
            xValue,
            nextX,
            key,
            i;
        if(Y_Lang.isArray(xData))
        {
            xcoords = [];
            for (i = 0; i < dataLength; ++i)
            {
                xValue = parseFloat(xData[i]);
                if(isNumber(xValue))
                {
                    nextX = (((xValue - xMin) * xScaleFactor) + leftPadding + xOffset);
                }
                else
                {
                    nextX = NaN;
                }
                xcoords.push(nextX);
            }
        }
        else
        {
            xcoords = {};
            for(key in xData)
            {
                if(xData.hasOwnProperty(key))
                {
                    xcoords[key] = this._getXCoords.apply(
                        this,
                        [xData[key], xMin, dataWidth, xScaleFactor, xOffset, dataLength, leftPadding]
                    );
                }
            }
        }
        return xcoords;
    },

    /**
     * Gets the y-coordinates for a series. Used by the setAreaData method.
     * Returns an array when an array is received as the first argument.
     * Returns an object literal when an object literal is received as the first argument.
     *
     * @method _getYCoords
     * @param {Array|Object} yData An array of data values mapped to the y axis or an
     * object literal containing key values pairs of data values mapped to the y axis.
     * @param {Number} yMin The minimum value of the y axis.
     * @param {Number} dataHeight The height used to calculate the y-coordinates.
     * @param {Number} yScaleFactor The ratio used to calculate y-coordinates.
     * @param {Number} yOffset The distance of the first and last y-coordinate from the beginning and end of the y-axis.
     * @param {Number} dataLength The number of data points in the arrays.
     * @param {Number} topPadding The top padding of the series.
     * @return Array|Object
     * @private
     */
    _getYCoords: function(yData, yMin, dataHeight, yScaleFactor, yOffset, dataLength, topPadding)
    {
        var isNumber = Y_Lang.isNumber,
			ycoords,
            yValue,
            nextY,
            key,
            i;
        if(Y_Lang.isArray(yData))
        {
            ycoords = [];
            for (i = 0; i < dataLength; ++i)
            {
                yValue = parseFloat(yData[i]);
                if(isNumber(yValue))
                {
                    nextY = ((dataHeight + topPadding + yOffset) - (yValue - yMin) * yScaleFactor);
                }
                else
                {
                    nextY = NaN;
                }
                ycoords.push(nextY);
            }
        }
        else
        {
            ycoords = {};
            for(key in yData)
            {
                if(yData.hasOwnProperty(key))
                {
                    ycoords[key] = this._getYCoords.apply(
                        this,
                        [yData[key], yMin, dataHeight, yScaleFactor, yOffset, dataLength, topPadding]
                    );
                }
            }
        }
        return ycoords;
    },

    /**
     * Finds the first valid index of an array coordinates.
     *
     * @method _getFirstValidIndex
     * @param {Array} coords An array of x or y coordinates.
     * @return Number
     * @private
     */
    _getFirstValidIndex: function(coords)
    {
        var coord,
            i = -1,
            limit = coords.length;
        while(!Y_Lang.isNumber(coord) && i < limit)
        {
            i += 1;
            coord = coords[i];
        }
        return i;
    },

    /**
     * Finds the last valid index of an array coordinates.
     *
     * @method _getLastValidIndex
     * @param {Array} coords An array of x or y coordinates.
     * @return Number
     * @private
     */
    _getLastValidIndex: function(coords)
    {
        var coord,
            i = coords.length,
            limit = -1;
        while(!Y_Lang.isNumber(coord) && i > limit)
        {
            i -= 1;
            coord = coords[i];
        }
        return i;
    },

    /**
     * Draws the series.
     *
     * @method draw
     * @protected
     */
    draw: function()
    {
        var w = this.get("width"),
            h = this.get("height"),
            xcoords,
            ycoords;
        if(this.get("rendered"))
        {
            if((isFinite(w) && isFinite(h) && w > 0 && h > 0) &&
                ((this.get("xData") && this.get("yData")) ||
                this._updateAxisBase()))
            {
                if(this._drawing)
                {
                    this._callLater = true;
                    return;
                }
                this._drawing = true;
                this._callLater = false;
                this.setAreaData();
                xcoords = this.get("xcoords");
                ycoords = this.get("ycoords");
                if(xcoords && ycoords && xcoords.length > 0)
                {
                    this.drawSeries();
                }
                this._drawing = false;
                if(this._callLater)
                {
                    this.draw();
                }
                else
                {
                    this._toggleVisible(this.get("visible"));
                    this.fire("drawingComplete");
                }
            }
        }
    },

    /**
     * Default value for plane offsets when the parent chart's `interactiveType` is `planar`.
     *
     * @property _defaultPlaneOffset
     * @type Number
     * @private
     */
    _defaultPlaneOffset: 4,

    /**
     * Destructor implementation for the CartesianSeries class.
     * Calls destroy on all Graphic instances.
     *
     * @method destructor
     * @protected
     */
    destructor: function()
    {
        if(this.get("rendered"))
        {
            if(this._xDataReadyHandle)
            {
                this._xDataReadyHandle.detach();
            }
            if(this._xDataUpdateHandle)
            {
                this._xDataUpdateHandle.detach();
            }
            if(this._yDataReadyHandle)
            {
                this._yDataReadyHandle.detach();
            }
            if(this._yDataUpdateHandle)
            {
                this._yDataUpdateHandle.detach();
            }
            this._xAxisChangeHandle.detach();
            this._yAxisChangeHandle.detach();
        }
    }
        /**
         * Event handle for the x-axis' dataReady event.
         *
         * @property _xDataReadyHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the x-axis dataUpdate event.
         *
         * @property _xDataUpdateHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the y-axis dataReady event.
         *
         * @property _yDataReadyHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the y-axis dataUpdate event.
         * @property _yDataUpdateHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the xAxisChange event.
         * @property _xAxisChangeHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the yAxisChange event.
         * @property _yAxisChangeHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the stylesChange event.
         * @property _stylesChangeHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the widthChange event.
         * @property _widthChangeHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the heightChange event.
         * @property _heightChangeHandle
         * @type {EventHandle}
         * @private
         */

        /**
         * Event handle for the visibleChange event.
         * @property _visibleChangeHandle
         * @type {EventHandle}
         * @private
         */
}, {
    ATTRS: {
        /**
         * An array of all series of the same type used within a chart application.
         *
         * @attribute seriesTypeCollection
         * @type Array
         */
        seriesTypeCollection: {},

        /**
         * Name used for for displaying data related to the x-coordinate.
         *
         * @attribute xDisplayName
         * @type String
         */
        xDisplayName: {
            getter: function()
            {
                return this._xDisplayName || this.get("xKey");
            },

            setter: function(val)
            {
                this._xDisplayName = val.toString();
                return val;
            }
        },

        /**
         * Name used for for displaying data related to the y-coordinate.
         *
         * @attribute yDisplayName
         * @type String
         */
        yDisplayName: {
            getter: function()
            {
                return this._yDisplayName || this.get("yKey");
            },

            setter: function(val)
            {
                this._yDisplayName = val.toString();
                return val;
            }
        },

        /**
         * Name used for for displaying category data
         *
         * @attribute categoryDisplayName
         * @type String
         * @readOnly
         */
        categoryDisplayName: {
            lazyAdd: false,

            getter: function()
            {
                return this.get("direction") === "vertical" ? this.get("yDisplayName") : this.get("xDisplayName");
            },

            setter: function(val)
            {
                if(this.get("direction") === "vertical")
                {
                    this._yDisplayName = val;
                }
                else
                {
                    this._xDisplayName = val;
                }
                return val;
            }
        },

        /**
         * Name used for for displaying value data
         *
         * @attribute valueDisplayName
         * @type String
         * @readOnly
         */
        valueDisplayName: {
            lazyAdd: false,

            getter: function()
            {
                return this.get("direction") === "vertical" ? this.get("xDisplayName") : this.get("yDisplayName");
            },

            setter: function(val)
            {
                if(this.get("direction") === "vertical")
                {
                    this._xDisplayName = val;
                }
                else
                {
                    this._yDisplayName = val;
                }
                return val;
            }
        },

        /**
         * Read-only attribute indicating the type of series.
         *
         * @attribute type
         * @type String
         * @default cartesian
         */
        type: {
            value: "cartesian"
        },

        /**
         * Order of this instance of this `type`.
         *
         * @attribute order
         * @type Number
         */
        order: {},

        /**
         * Order of the instance
         *
         * @attribute graphOrder
         * @type Number
         */
        graphOrder: {},

        /**
         * x coordinates for the series.
         *
         * @attribute xcoords
         * @type Array
         */
        xcoords: {},

        /**
         * y coordinates for the series
         *
         * @attribute ycoords
         * @type Array
         */
        ycoords: {},

        /**
         * Reference to the `Axis` instance used for assigning
         * x-values to the graph.
         *
         * @attribute xAxis
         * @type Axis
         */
        xAxis: {},

        /**
         * Reference to the `Axis` instance used for assigning
         * y-values to the graph.
         *
         * @attribute yAxis
         * @type Axis
         */
        yAxis: {},

        /**
         * Indicates which array to from the hash of value arrays in
         * the x-axis `Axis` instance.
         *
         * @attribute xKey
         * @type String
         */
        xKey: {
            setter: function(val)
            {
                if(Y_Lang.isArray(val))
                {
                    return val;
                }
                else
                {
                    return val.toString();
                }
            }
        },

        /**
         * Indicates which array to from the hash of value arrays in
         * the y-axis `Axis` instance.
         *
         * @attribute yKey
         * @type String
         */
        yKey: {
            setter: function(val)
            {
                if(Y_Lang.isArray(val))
                {
                    return val;
                }
                else
                {
                    return val.toString();
                }
            }
        },

        /**
         * Array of x values for the series.
         *
         * @attribute xData
         * @type Array
         */
        xData: {},

        /**
         * Array of y values for the series.
         *
         * @attribute yData
         * @type Array
         */
        yData: {},

        /**
         * Collection of area maps along the xAxis. Used to determine mouseover for multiple
         * series.
         *
         * @attribute xMarkerPlane
         * @type Array
         */
        xMarkerPlane: {},

        /**
         * Collection of area maps along the yAxis. Used to determine mouseover for multiple
         * series.
         *
         * @attribute yMarkerPlane
         * @type Array
         */
        yMarkerPlane: {},

        /**
         * Distance from a data coordinate to the left/right for setting a hotspot.
         *
         * @attribute xMarkerPlaneOffset
         * @type Number
         */
        xMarkerPlaneOffset: {
            getter: function() {
                var marker = this.get("styles").marker;
                if(marker && marker.width && isFinite(marker.width))
                {
                    return marker.width * 0.5;
                }
                return this._defaultPlaneOffset;
            }
        },

        /**
         * Distance from a data coordinate to the top/bottom for setting a hotspot.
         *
         * @attribute yMarkerPlaneOffset
         * @type Number
         */
        yMarkerPlaneOffset: {
            getter: function() {
                var marker = this.get("styles").marker;
                if(marker && marker.height && isFinite(marker.height))
                {
                    return marker.height * 0.5;
                }
                return this._defaultPlaneOffset;
            }
        },

        /**
         * Direction of the series
         *
         * @attribute direction
         * @type String
         */
        direction: {
            value: "horizontal"
        }
    }
});

}, '3.11.0', {"requires": ["series-base"]});


text:
Volume 6, Issue 1 (Spring 2016)
J Fasa Univ Med Sci 2016, 6(1): 35-43 Back to browse issues page
The Impact of N-acetyl Cysteine on Paraoxon-induced Oxidative Stress in Rat Liver and Kidney
Maryam Salehi1, Mahvash Jafari 2, Alireza ASgari3, Javad Rasouli4
1- Neurosciences Research Center, Baqiyatallah, University of Medical Sciences, Tehran, Iran
2- Chemical Injuries Research Center, Baqiyatallah, University of Medical Sciences, Tehran, Iran , m.jafari145@gmail.com
3- Sport Physiology Research Center, Baqiyatallah, University of Medical Sciences, Tehran, Iran
4- Department of Biochemistry, Faculty of Medicine, Baqiyatallah University of Medical Sciences, Tehran, Iran
Background & Objective: Paraoxon (POX) as one of the most toxic organophosphorus pesticides, is widely used in agriculture, which can reduce the antioxidant capacity of the cell. The aim of this study was to investigate the effect of N-acetyl cysteine (NAC) as an antioxidant against POX-induced oxidative stress in rat liver and kidney.
Material & Methods: In the present experimental study, male Wistar rats were randomly divided into four groups; control (corn oil as POX solvent), POX (0.7 mg/kg), NAC (160 mg/kg), and NAC+POX. 24 hours after the intraperitoneal injection, animals were anesthetized and the liver and kidney tissues were quickly removed. Followed by the tissues hemogenation, superoxide dismutase (SOD), catalase (CAT), glutathione S-transferase (GST) and lactate dehydrogenase (LDH) activities, as well as glutathione (GSH) and malondialdehyde (MDA) levels were determined by the biochemical methods. The data were statistically analyzed using the analysis of variance (ANOVA) followed by the post hoc analysis using Tukey test.
Results: POX increased SOD, CAT and GST activities and decreased GSH content in rat liver and kidney as compared to control. In addition, the increased MDA level and decreased LDH activity were observed in the liver. The administration of NAC inhibited changing of these parameters.
Conclusion: The administration of NAC as antioxidant, ameliorates POX-induced oxidative stress in rat liver and kidney by scavenging the free radicals and GSH synthesis, but does not provide the complete protection.
Keywords: Paraoxon, N-acetyl cysteine, Oxidative stress, Liver, Kidney, Rat
Full-Text [PDF 976 kb] (1641 Downloads)
Type of Study: Research | Subject: Biochemistry
Received: 2015/10/11 | Accepted: 2016/02/4 | Published: 2016/06/17
Send email to the article author
Salehi M, Jafari M, ASgari A, Rasouli J. The Impact of N-acetyl Cysteine on Paraoxon-induced Oxidative Stress in Rat Liver and Kidney. J Fasa Univ Med Sci. 2016; 6 (1) :35-43
URL: http://journal.fums.ac.ir/article-1-786-en.html
Volume 6, Issue 1 (Spring 2016) Back to browse issues page

redpajama_set_name: RedPajamaCommonCrawl


Whose Oceania? panel discussion hosted by Contemporary HUM in London on 29.09.18.
In late September this year, a major international event for Aotearoa New Zealand and the Pacific opened—Oceania, at The Royal Academy of Arts in London, an exhibition that features artworks by contemporary artists including Mark Adams, Yuki Kihara, Mata Aho Collective, Fiona Pardington, Michael Parekowhai, John Pule and Lisa Reihana alongside the Oceanic artefacts held by The Royal Academy, and museums in Europe and the Pacific.
As this is one of the most significant and extensive displays of New Zealand, Māori and Pasifika art displayed outside of New Zealand in recent years, online art publishing platform Contemporary HUM took the opportunity to organise a panel discussion, Whose Oceania?, which was held at the New Zealand High Commission on 29 September 2018, specifically to coincide with the opening weekend of the Oceania exhibition.
The panel discussion bought together several professionals from different backgrounds and practices—UK-based historian and Beit Professor of Imperial and Commonwealth History at Oxford University James Belich, Curator Mātauranga Māori at Te Papa Matariki Williams, and was co-chaired by Editor of The Pantograph Punch Lana Lopesi, along with HUM Editor Pauline Autet (the last panelist Fiona Pardington was unfortunately unable to join in).
On the day, the panelists not only offered their own informed and critical responses to the show, but they also attempted to address wider questions surrounding the presentation of historical and contemporary works in foreign contexts, such as the Royal Academy, and discussed the link to the 250th anniversary of Captain Cook's first voyage to the Pacific—all from a distinctly New Zealand and Pacific point of view.
An edited version of the discussion has now been published on Contemporary HUM's website, available for all who couldn't attend the event, or for those who were there on the day and would like to revisit some of the themes and topics that were discussed. You can read it here.
Whose Oceania? was a special event made possible with funding from Creative New Zealand, and we hope it will inspire more spirited conversation around historic and contemporary NZ art. We would like to give a special thank you to everyone involved including the New Zealand High Commission and New Zealand Studies Network.
Contemporary HUM is the first centralised platform dedicated to documenting New Zealand art projects abroad. We publish conversations, reviews and essays on the international projects of New Zealand creative practitioners, in addition to a calendar of events and exhibitions.
Announcing the launch of Contemporary HUM: a new international initiative for New Zealand visual arts.


Community Bankers' Bank offers loans to banks and bank holding companies. Your bank can obtain loans and lines of credit for working capital and general corporate purposes. For example, you may be seeking to down-stream capital to your bank, restructuring your debt and equity mix for more stability, or seeking financing for acquisitions. We also provide funding for stock repurchases and ESOPs. And, if you are building your new bank headquarters or branch office, we offer construction and permanent loans.
For banks in organization, we provide working capital lines of credit and offer loans to the organizers to purchase stock in their new bank.


Sparky is a character in Disney's "Lilo and Stitch 3", "Lilo and Stitch, the series" and "STITCH!" He also appears as a playable character in DISNEY INFINITY. You can play with him in the Lilo and Stitch Playset and in the toy box mode. He is also playable in the toy box in Disney Infinity 3.0.
He is Yang, Perry and Tarzan can't speak.
He can freeze his opponent with electricity. He also can hit and kick. Has a jump.


Correct footage in correct timeline still needs rendering?
The easiest way to make sure everything matches is to start a new sequence, drag a clip from the browser into the timeline and simply click 'YES' when it asks you if FCP should match the sequences preset to the footage. Then delete the clip and your timeline is ready to edit.
1. Make sure the codec, frame size and pixel aspect ratios match the sequence.
2. Make sure frame rates match.
4. Make sure the alpha channel setting match.
This last point is very important as its the least obvious of them all. I recently imported an XML file for a project from Premiere Pro and all of the alpha channel's came across as 'black' when the FCP default is 'none/ignore'.
After I changed the alpha channel setting for the footage (highlight all the clips you want to change and then right click on any clip's property in the alpha column in the browser to change them all in one go) everything worked as it should and the render bar disappeared.


text:
Q: sse and avx performance on Sandybridge and IvyBridge I am benchmarking a set of applications on a SandyBridge processor (i7-3820).
The benchmark consists of two different versions.
These two versions contain the same code with the only difference that the first version uses sse/sse2 instrinsics and the second version uses avx instrinsics.
For the compilation of the benchmark I am using the Visual Studio 2015.
Compiling the version with sse instrinsics either on x64 or x86, the execution time is almost the same. But compiling the benchmark with avx instrinsics for x64, the execution time is worst (almost double) comparing the benchmark with avx instrinsisc and compiled for x86. Furthermore, the execution time of avx benchmark compiled with x86 succeeds only a small speed up (x8%) comparing the benchmark of sse instrinsics.
Finally, I tested the above configurations on an Ivy Bridge processor (i7-3770) and the execution times execution times between x64 and x86 for avx instrincis was same. But the avx intrinsics didn't show any improvement against the sse.
Is there any explanation about the bad performance of avx instrinsics on Sandy Bridge for compiling for x64?
Why the two architectures doesn't show any speed up for the avx instruction against the sse instructions?
Moreover, I tried different compilation switching from arch:AVX to /arch:SSE2 and vice versa but nothing was changed at execution times. But if I am right, the 'Enable Enhanced instruction set' property in visual studio effects only the vectorization.
Thanks in advance.

A:
compiling the benchmark with avx instrinsics for x64, the execution time is worst

Almost certainly from AVX<->SSE transition delays, from mixing legacy SSE with 256bit AVX instructions without a vzeroupper.
See also Using AVX CPU instructions: Poor performance without "/arch:AVX"
x64 binaries probably use legacy SSE2 instructions for scalar FP math.  If you compile all your code with AVX enabled, those instructions should use the VEX encoding.  But you still need vzeroupper around calls to library functions.
Your x86 32bit binary probably doesn't use any legacy SSE2 instructions between AVX functions, maybe not even in library function calls.

edit: i7-3820 is 32nm SandyBridge-E, not IvyBridge, my mistake.  See Agner Fog's microarch pdf and the x86 tag wiki if you're curious about the difference between SnB and IvB.
I think you're saying that AVX was less of a speedup over SSE on your IvB.  One of the major new features in IvB is mov-elimination.  It handles movdqa xmm,xmm register->register moves in the rename stage with zero latency, without needing an execution unit.
If you're only seeing AVX transition delays on one computer, maybe you're compiling with different libraries or compiler versions.
If you want more of an answer than this, put some actual numbers in table of bullet list where we can see them all easily.

redpajama_set_name: RedPajamaStackExchange


text:
Cyber Fraud, Cyber Security, Identity and Access Management, Multi-Factor Authentication, Password Management, Phishing, Restricted Access, Scam Emails, Security
A teen in Argentina has become the first bug bounty hacker to become a millionaire. He was self-taught. Interestingly however, the hacking was with the aim of creating a safer internet. Legal hacking? What is it and how does it work?
Santiogo Lopez from Argentina goes by the handle @try_to_hack. This programme started through his reporting of security weaknesses to companies. So called 'bug bounty' programmes through HackerOne has allowed him to report more than 1,6000 security flaws to organisations. This is not just for local Argentinian companies. Lopez has aided the likes of Twitter, Verizon Media Company, numerous private organisations and even government bodies.
What is a 'bug bounty'?
When I first came across this story, I had no idea that legal hacking was on a massive scale, let alone what a 'bug bounty' was. However, it is a reward which is given to a hacker who reports an organisation's valid security weakness.
Given the increased threat of attacks, worry over GDPR and data generally, it is unsurprising that this is a popular way for organisations to test their cyber-security.
What sort of scale are we looking at?
I'm sure that you are like me and wondering how a self-taught hacker reaches millionaire status. My mind went to how many organisations he must have to hack. Also, who is employing him?
Over 1,200 organisations have partnered with HackerOne. Therefore, clientele includes; the US Department of Defence, Google, Twitter, Nintendo, Starbucks, Dropbox, Intel. Wow. Lopez has found more than 100,000 vulnerabilities and award in excess of $45 million in bug bounties.
"To me, this achievement represents that companies and the people that trust them are becoming more secure than they were before, and that is incredible. This is what motivates me to continue to push myself and inspires me to get my hacking to the next level," said Lopez.
Who are HackerOne?
Lopez is not the only hacker under HackerOne. In fact, he is one of 330,000 hackers. HackerOne is a private bug bounty platform that connects businesses to cyber-security researchers.
Hackers through HackerOne's main aim is to report security vulnerabilities before they can be exploited by criminals.
"The entire HackerOne community stands in awe of Santiago's work," said HackerOne CEO Marten Mickos. "Curious, self-taught and creative, Santiago is a role model for hundreds of thousands of aspiring hackers around the world"
According to the latest report, HackerOne's earnings in 2018 reached $19 million – from $9.3 million in 2017. There is clearly a demand. They also have a location to brag about: there are contributors in more than 150 countries.
How do you learn how to hack?
Most hackers are unsurprisingly self-taught. Access to this information is (more surprisingly) easy with free online tutorials, blogs and pop-culture.
Lopez's story is certainly an inspiring one. When he was 16, he joined HackerOne. In the past three years, Lopez was hacking after school, now full-time earning nearly 40 times the average software engineer salary in Argentina.
Still not sure where to look for legal hacking? HackerOne offers Hacker101 services (a free collection of videos, resources and hands-on activities) to allow teaching for bug bounty hunters.
How many people know about this?
According to HackerOne, 64% of US citizens understand that not all hackers act maliciously. Interest in the community is also growing. I almost feel embarrassed I did not understand the scale of this before.
In terms of who learns how to hack:
41% learn to contribute to their career
13.5% learn to have fun
14.26% learn for the money.
I still find it strange to use the word 'hacking' in a positive sense. What are your thoughts?
My perceptions about the potential benefits of these hackers has certainly changed. It seems that to increase security for individuals, organisations may have to embrace this 'legal hacking' community.
Would you agree with General Motors that "hackers have become an essential part of our security ecosystem"?
Additionally, would you ever be tempted to use HackerOne?
Please let me know your thoughts below!
Tags: Bug Bounty, Cyber Security, Hacking, Legal Hacking, Teaching
https://serviceteamit.co.uk/wp-content/uploads/2019/03/Legal-Hacking.jpg 799 1600 Cara Williams https://serviceteamit.co.uk/wp-content/uploads/2015/10/company-logo-old-white.png Cara Williams2019-04-23 10:33:482019-05-09 08:17:15The Rise in Legal Hacking?
New edition of cyber security guidance helps small businesses to tackle common cyber attacks
Industry Braces for Repeal of ISP Privacy Rules
An Open Letter to AWS CEO Andy Jassy on Cloud Security Innovation
Restrict Access to Office 365 Exchange Online | HowTo | 2 of 2
Reddit reveals breach as attacker circumvents staff's 2FA
Cyber Security: Complex solutions made Simple
Singapore Responds to Recent Cybersecurity Attacks European Parliament Approves Mass ID Database Plans


When visiting Singapore, there are two structures that stand out – the Marina Bay Sands hotel and the Singapore Flyer. Both offer breathtaking views of the city, and both are, on their own, amazing sights.
At 541 feet, the Singapore Flyer was the tallest Ferris wheel in the world, until the High Roller in Las Vegas snuck in at 550 feet. The Singapore Flyer took two and half years to build, carrying its first paying passengers in March 2008.
The wheel offers twenty-eight air-conditioned capsules, each able to contain about twenty-eight guests. The time in the capsule and away from the heat in Singapore was nice – especially because we had done quite a bit of walking prior to arriving. On our trip, the capsule was full, but the walking space around the seating area was wide enough that we were all able to wander freely and without feeling too crowded.
We opted to take the Singapore Flyer at night. It's somewhat removed from some of the larger hotels and buildings, so the city lights don't interfere with your view of the city. As the wheel turns, you're greeting with an excellent view of the harbor and as it reaches the top and begins to descend, you get to admire the city's architecture.
A complete trip from bottom to top and back takes just over 30 minutes. At times, it feels long, but if you're into snapping photos as a way of chronicling your travels, it's time very well spent.
In addition to normal seating, the Flyer offers a two-rotation dining experience that includes a host, a four-course meal (Chinese or Western-style), and priority boarding. The reservations can be made for two and guests are seated in a capsule "restaurant" with up to ten total guests.
The center where the Singapore Flyer is located is several stories and is the home to a number of shops, dining options, and activities. In addition to taking a trip around the wheel, you can try out the center's flight simulator, visit a fish spa, enjoy the XD sensory theater, or explore their mini rainforest.
What places have you visited where you were able to enjoy the view, in particular?
I'd love to hear about them in the comments below.


text:
Home Activities IRCICA Participated in the UN-OIC Coordination Meeting held in Geneva, 1-3 May 2012
IRCICA Participated in the UN-OIC Coordination Meeting held in Geneva, 1-3 May 2012
by admin 8 May 2012
The Meeting announced to have IRCICA as a host for the forthcoming Coordination Meeting to be held at its Premises in Istanbul in June 2014
Pursuant to General Assembly resolutions 50/17 of 20 November 1995 and 65/140 of 16 December 2010, the General Meeting on Cooperation between the Secretariats of the United Nations (UN) and the Organization of the Islamic Cooperation (OIC) and their specialized organizations and agencies took place in Geneva from 1-3 May 2012.
The meeting was co-chaired by Mr. Kassym-Jomart Tokayev, Director-General of the United Nations Office at Geneva (UNOG) and H.E. Ambassador Hameed Opeloyeru, OIC Assistant Secretary-General for Economic Affairs. Dr. Halit Eren, Director General of IRCICA has designated Dr Nezih Maruf, Director, Crafts Development Program to represent the Centre in this meeting.
United Nations System
Department of Political Affairs (DPA), UN Office in Geneva (UNOG), Office for the Coordination of Humanitarian Affairs (OCH A), UN International Strategy for Disaster Reduction (UNISDR), Office for Disarmament Affairs (ODA), Counter- Terrorism Committee Executive Directorate (CTED), United Nations Economic and Social Commission for Western Asia (ESCWA), International Atomic Energy Agency (IAEA), International Fund for Agricultural Development (IFAD), International Labour Organization (ILO), International Telecommunication Union (ITU), Office of the High Commissioner for Human Rights (OHCHR), United Nations Alliance of Civilizations (UNAOC), United Nations Conference on Trade and Development (UNCTAD), United Nations Development Programme (UNDP, including the Special Unit for South-South Cooperation), United Nations Environment Programme (UNEP), United Nations Educational, Scientific and Cultural Organization (UNESCO), United Nations Human Settlement Programme (UN-HABITAT), Office of the United Nations High Commissioner for Refugees (UNHCR), United Nations Children's Fund (UNICEF), United Nations Institute for Training and Research (UNITAR), United Nations Office on Drugs and Crime (UNODC), United Nations Population Fund (UNFPA), United Nations Register of Damage Caused by the Construction of the Wall in the Occupied Palestinian Territory (UNRoD), United Nations Relief and Works Agency for Palestine Refugees in the Near East (UNRWA), World Bank, Food and Agriculture Organization of the United Nations (FAO), World Food Programme (WFP), UN Conference on Trade and Development (UNCTAD), World Intellectual Property Organization (WIPO), and World Meteorological Organization (WMO).
Organization of Islamic Cooperation
OIC General Secretariat, OIC Permanent Observer Mission in New York, OIC Permanent Observer Mission in Geneva, Standing Committee for Scientific and Technological Cooperation (COMSTECH), Standing Committee for Economic and Commercial Cooperation, Research Centre for Islamic History, Art and Culture (IRCICA), Statistical, Economic and Social Research and Training Centre for Islamic Countries (SESRIC), Islamic Centre for the Development of Trade (ICDT), Islamic University of Technology (IUT), Islamic Solidarity Fund (ISF), Islamic Educational, Scientific and Cultural Organization (ISESCO), Islamic Chamber of Commerce and Industry (ICCI), Islamic Committee of International Crescent (ICIC), OIC Youth forum/Islamic Conference Youth forum for Dialogue and Cooperation, Islamic Solidarity Sports Federation (ISSF).
II. GENERAL OBSERVATIONS AND OUTCOME OF THE MEETING
Participants of the meeting welcomed the continuation of the strengthening of cooperation between the UN and the OIC in a diverse array of areas including the maintenance of international peace and security; economy, science and technology; and cultural and social issues. There was also a strong sense that the increasing and widespread calls for meaningful political, economic and social reforms in the Arab and Islamic world, particularly since the beginning of 2011, had created a changed context. As a consequence, participants expressed the view that both the work of the UN and the OIC as well as their cooperation needed to be adjusted to new realities.
The meeting took note of the Follow-up Report (2010-2012) on Cooperation between the UN and the OIC presented by the OIC. Both Organizations stated their commitment to pursue and reinforce cooperation in all areas of common interest, such as political, inter-cultural dialogue, the fight against terrorism, economic, humanitarian, science and technology, human development, social, cultural, human rights, and refugees.
During the discussions a number of key themes for further enhanced cooperation between the UN and the OIC emerged. These included the need and good potential to 1) collaborate more closely on promoting peace and security in different contexts – from conflict prevention to peace building, from peacekeeping to peacemaking peace processes in OIC countries, such as Afghanistan, Syria, Somalia, Yemen, and the Occupied Palestinian Territory; 2) addressing urgent humanitarian needs in OIC countries affected by man-made or natural disasters or by violent conflict, 3) more concerted efforts to mobilize resources for priority activities of both organizations, 4) foster economic and social reforms, and 5) promote intercultural dialogue .
The meeting agreed for the first time on a "Matrix of Activities within the Framework of UN-OIC Collaboration". The matrix describes concrete projects of cooperation that UN and the OIC commit to implement over the next two years and determines objectives, participating UN and OIC agencies, and timelines. The Matrix will also form the basis of the next report on UN-OIC cooperation that will be presented at the next general UN-OIC meeting in 2014, which the OIC agreed to host in Istanbul, Turkey.
Strengthen intercultural dialogue and cooperation 1) Strengthen dialogue with all relevant institutional and civil society actors on the building of pluralist and inclusive societies, (in particular through the UNAOC platform);
2) Support the adoption of UNAoC national and regional plans for intercultural dialogue and cooperation;
3) Further develop encouragement to innovative bridge-buiding initiatives by youth and civil society actors;
4) Further enrich action to address various aspects of the so-called West-Muslim divide
5) Step up programs that promote mutual knowledge and respect, including through the review of history books;
6) Expand support to youth grassroots initiatives designed to build bridges OIC GS, IRCICA,
ISESCO, ISSF, COMIAC UNAOC, UNESCO
1) Countering incitement and enhancing cultural dialogue 1) Follow up of the resolution of UNHRC No. 16/18;
2) Enhanced dialogue among cultures including but not limited to activities such as:
Linkages between cultural centers Publications
Projects on cultural heritage presentations
Enhanced involvement of youth in activities such as sports Dialogue with religious leaders Enhanced cooperation with regard to media literacy
3) Utilizing the consensus building in the UNHRC resolution 16/18 to explore the development of an integrated framework aimed at building on the consensus to develop an integrated framework of discussion on the whole package of interrelated issues through the Istanbul Process and other relevant processes.
4) Invite OIC to the UN expert workshop in Morocco on the prohibition of incitement to hatred
GS/DCAIPHRC
ISESCOIRCICA, ISSF, COMIAC
UNOHCHR,
UNESCO,
UNISDR,
UNICEF, ILO
CTED, CGTF,
UNAOC,
Promoting of democratization, good governance, human rights and rules of law 1) Support activities of independent permanent human rights commission including through study/orientation visits to relevant UN mechanisms in Geneva and New York.
GS/DCA, IPHRC,
ISESCO, IRCICA
OHCHR, ILO, UNICEF
Alliance of Civilizations
1) To work together in collaboration with other partners on a Plan of Action to address various aspects of the so-called "West- Muslim";
2) Strengthen coordination in combating intolerance, stereotypes, prejudices, discrimination and distortion of history, with a view to consolidating democratic institutions and human rights.
3) Implementation of projects on preservation of cultural heritage
4) Implementation of the project on the review of history books. GS/DCA, IRCICA, ISESCO, IDB UN AoC, UNESCO
Development of Arts, Crafts and Promotion of Heritage 1. Set up a "Book Hospital" at the historical Suleymaniye Library in Istanbul
2. Convene World Heritage Committee
3. To preserve architectural and urban conservation
4. To involve workshops, training programs and architectural schools attended by professors and students from various cultural backgrounds and role of history teaching in improving intercultural relations;
5. To propose a congress on Legal Protection of Arts and Crafts
6. To enhance a new series to be devoted to the 'Architectural Heritage of Al-Quds and Palestine' GS/DCA, IRCICA, ISESCO UNESCO
UNAOC WIPO
Intellectual Property,
Innovation and Promotion 1) Holding a regional seminar on the
Intellectual Property in collaboration with the Turkish Patent Institute
2) Organizing a training Program on Innovation and Promotion with the Moroccan Industrial and Commercial Property Office (OMPIC) in Casablanca in 2013 and in the matter of geographical indications. ICDT, IRCICA
ICDT WIPO
Promoting Tourism for sustainable development 1. Mobilization of funds for the Regional Project on Sustainable Development of Tourism in a Cross-Border Network of Parks and Protected Areas in West Africa
2. Promoting the role of cultural tourism in development ICDT, ISSF
IRCICA ISESCO, UNWTO, UNESCO, UNEP, SUSSC
Reviewing implementation of the UNAOC High Level Group Report to UNSG in November 2006 1) To work together in collaboration with other partners on a Plan of Action to address various aspects;
2) Strengthen coordination in combating intolerance, stereotypes, prejudices," discrimination and distortion of history, with a view to consolidating democratic institutions and human rights.
3) Implementation of IRCICA project on protection of cultural heritage.
4) Implementation of IRCICA-UNAOC project on review of history books. GS/CSA
ISESCO
IDB,
ISSF
IRCICA UN AoC UNESCO UNICEF, ILO
UNAOC
IRCICA Director General Prof. Dr. Halit Eren presented...


text:
Fire has been an important part of all cultures and religions from pre-history to modern day and was vital to the development of civilization. It has been regarded in many different contexts throughout history, but especially as a metaphysical constant of the world.
The above text is a snippet from Wikipedia: Fire (classical element)
FIRE may stand for: Foundation for Individual Rights in Education, a civil liberties organization, Fully Integrated Robotised Engine, a model of engine produced by Fiat, Future Internet Research and Experimentation, Finnish Intelligence Research Establishment, a Finnish signals intelligence unit, FIRE economy, a segment of the stock market: Finance, Insurance, Real Estate
The above text is a snippet from Wikipedia: FIRE
Fire!!
Fire!! was an African-American literary magazine published in 1926 during the Harlem Renaissance. The publication was started by Wallace Thurman, Zora Neale Hurston, Aaron Douglas, John P. Davis, Richard Bruce Nugent, Gwendolyn Bennett, Lewis Grandison Alexander, Countee Cullen, and Langston Hughes.
The above text is a snippet from Wikipedia: Fire!!
A (usually self-sustaining) chemical reaction involving the bonding of oxygen with carbon or other fuel, with the production of heat and the presence of flame or smouldering.
Something that has produced or is capable of producing this chemical reaction, such as a campfire.
The often accidental occurrence of fire in a certain place leading to its full or partial destruction.
One of the four basic elements.
One of the five basic elements (see ).
A heater or stove used in place of a real fire (such as an electric fire).
The elements necessary to start a fire.
The bullets or other projectiles fired from a gun.
Strength of passion, whether love or hate.
Liveliness of imagination or fancy; intellectual and moral enthusiasm.
Splendour; brilliancy; lustre; hence, a star.
A button (on a joypad, joystick or similar device) usually used to make a video game character fire a weapon.
To set (something) on fire.
To heat without setting on fire, as ceramic, metal objects, etc.
If you fire the pottery at too high a temperature, it may crack.
They fire the wood to make it easier to put a point on the end.
To drive away by setting a fire.
To terminate the employment contract of (an employee), especially for cause (such as misconduct or poor performance).
To shoot (a device that launches a projectile or a pulse of stream of something).
We will fire our guns at the enemy.
He fired his radar gun at passing cars.
To shoot a gun, a cannon or a similar weapon.
Don't fire until you see the whites of their eyes.
His nail gun fired about twenty roofing nails a minute.
To shoot; to attempt to score a goal.
To cause an action potential in a cell.
When a neuron fires, it transmits information.
To forcibly direct (something).
He answered the questions the reporters fired at him.
To initiate an event (by means of an event handler)
The event handler should only fire after all web page content has finished loading.
To inflame; to irritate, as the passions.
to fire the soul with anger, pride, or revenge
To animate; to give life or spirit to.
to fire the genius of a young man
To feed or serve the fire of.
to fire a boiler
To light up as if by fire; to illuminate.
To cauterize.
The above text is a snippet from Wiktionary: fire


text:
Suprise Return of the Riviera's Queen Victoria Pub
by Bradley Martin Jun 6, 2013, 6:00am PDT
Share All sharing options for: Suprise Return of the Riviera's Queen Victoria Pub
Original Queen Victoria Pub
Photo: Susan Stapleton
In a surprise switcheroo, the shuttered Queen Victoria Pub at the Riviera has been re-opened by the resort as the Queen Victoria Pub, with an abbreviated emphasis on British pub food, but a greater focus on "craft" beer. The new menu has replaced many former iconic British choices such as shepherd's pie and steak and kidney pie and chips with generic Mid-Atlantic standbys like BLT sliders and foot long hot dogs.
The formerly 24 hours a day pub, maintained its European roots with traditional breakfasts and U.K. sports on the "telly." The new hours are 6 p.m. to 2 a.m., seven days a week.
The original space shuttered on April 30 with the operators promising to relocate to a new location. They are still currently looking for an appropriate space.
· All Coverage of Queen Victoria Pub [~ELV~]
Queen Victoria Pub


During my last two flights I noticed a shift in the frame as the wing started to load up. I did post flight inspections both times and inspected the main spar by lifting the front wheel and eyeballing the frame from the bottom. This time I was launching at Shell Creek for the first time since returning from the road trip and the shift was a noticeable shrug. Once up, I decided that whatever it was … probably wouldn't reappear until I landed, so I put it out of my mind and enjoyed a nice long flight. The landing was uneventful.
Back at the house I the post flight exposed the problem. The main spar is made up of two one inch square tubes. From the bottom they looked fine but from the side I could see a crack. I took off the seat and discovered that both tubes were cracked on the top and both sides. With a little pressure I could make the cracks open slightly. When I lifted the front wheel and rocked it up and down I could see that there was very little holding the rig together. Conceivably, if it didn't collapse during take off, the spar could have let go with me on the breakaway side, only connected to the wing and motor by the seat belt. I suppose its possible I could have stayed with the rig and landed but more likely, I would have fallen through the seat belt, completing my last flight. Wow! It was obvious that the cracks had been there for awhile but I hadn't seen it.
It probably started when I had the crash at Bubba's. The trike came down hard and bent the frame downward, behind the seat. I didn't worry about it at the time. Actually I liked the new configuration because it moved the prop wash slightly upward and lowered the seat and center of gravity. I joked that it was more like the geometry of the trike buggy. Well… the top of the tube is were it crimped the tubing and thats naturally where the crack would form. The side cracks probably opened up recently. At least I hadn't noticed them and I think I would have.
It took Mike Lange no time to repair the spar.
While I was at it I balanced the prop and installed some bullet proof line keepers. I also raised the seat about 5 inches and padded it with 2 inches of memory foam.
Two and a half hours out of Conway I saw the glass pyramid that I remember from previous visits. I pulled off the highway and turned onto Bass Pro Shop Drive. Huh? It turns out that, "The Great American Pyramid has been sold and is now a Mega Store. The tourist welcome center is next door so I stopped and got my bearings.
After getting a city map, I drove to Beale St and found a parking place. Sunday morning is a quiet time on Beale St. There were just a few tourists window gazing and enjoying a beautiful day. I went to the Memphis Jazz Museum and was sorely disappointed when I discovered that it was a privately owned exhibit with a poor selection of exhibits. "The stuff I saw at the welcoming center was better than this." After an hour of wandering i heard some jazz and strolled into BB Kings nightclub where a trio and singer were performing.
An hour later and full of BBQ ribs I walked into the sunshine to find the truck and hit the road. Birmingham Alabama was a good place to spend the night. The next morning I got up early and drove to Punta Gorda.
The drive from Woodward to Conway was 450 miles. I checked into another Indian operated Motel. The area looked a little sketchy and I was worried about the rig. Fortunately I was able to back the truck right up to my door and there was a super market just across the street for dinner. I'd selected this hotel because it was just a few blocks from the municipal airport.
The next morning I was out and rolling an hour before first light. I planned to launch as soon as I could see my boots on the pegs. Following the GPS, I arrived at the airport in 8 minutes … but … it wasn't there! Instead it was a pile of rubble and muddy pits. I got on the internet and found that there was a brand new airport a few miles out of town. Back on the road.
The Dennis Cantrell Field is a gorgeous new airport. When I arrived there was nobody around. I unloaded the rig and waited. I was beginning to think that there wasn't going to be anyone to ask permission so I started the motor to warm it up. That woke em up. A fellow came out of the formerly locked terminal and he quickly gave me a thumbs up.
I rolled around to the back of the terminal and laid out the Eden III. Perhaps it was the smooth tarmac that allowed the lines to be sucked into the prop. Maybe I missed something during lay out. Whatever it was, the Eden III was out of the game with all the B and C mains on the left side damaged. I was bummed but smiled at my spectator and said… "Time for Plan B" but I also said as I was laying out the Apco, if that happens again, my trip is over. This launch was flawless. I flew around the area for about an hour and landed on the apron behind the terminal. This was the first time I had flown the Apco since Albuquerque. I found it hard to reach the tip steering toggles and the brakes felt stiffer than I remembered. It should have been a very comfortable flight but it just didn't feel right. When I landed there were a couple of new guys watching and I don't think they had ever seen a PPG, they might not have even seen a PPC. We chatted for awhile and the first guy I talk to told me that he really enjoyed watching and said I was welcome back any time. I don't know who he was but I'm beginning to think he was the airport manager. Thanks Conway!
The trip from Colorado Springs was long and without much scenery. I arrived "Nightmare in the Country", just as the sun was setting. I was hoping to fly the event but the wind was howling. Kenton was very busy getting things ready. He has 100 actors employed as Zombies Vampires and other scary monsters. It is a first class production that sports 6 separate feature rides and fills his entire property.
Another piano man who's life has taken a radical turn in another direction. After the show closed at midnight we dragged into Kenton's house and crashed. The next morning we went out for breakfast and I hit the road.
I spent the next 4 days bopping around Denver to catch up with friends.
After I saw Dawn off I drove to Highlands Ranch where I spent the afternoon with Rex Mangurian. Rex was working on his Falcon and still in the glow of MV. Rex and I got to know each other in the early 80's when I was a Factory Rep in the bicycle business. He has changed very little over the years, still into the outdoor toys and the vices we grew up with. I thought I had a great garage but Rex has me beat. Two big Motor cycles and a trick little trike that gimbals… and lots and lots of stuff. Rex gave me a mason jar out of his garden and I hit the road.
We had a great time talking about the fly-in and whats next.
From Rex I drove to Colfax where I had dinner with the old gang: Wes Brown, Scott Murphy, Alan Epstein, and Vince Ulliberry. We have been buddies through thick and thin. Starting as kids at summer Camp through long and mostly good careers. We have share adventures that have created a bond that most people will never understand. That evening I stayed with Stefania. We watched a little TV and went to bed.
The next morning I did a little shopping and hooked up with my old sailing buddy, Ray Satter. We had lunch at a little cafe in the hood that specializes in exotic meats. I had a venison sausage sandwich to die for. After lunch he took me to a secret underground garage that I had never hear about. It was filled with vintage and exotic cars. Ferrari's, Bugatti's, old Packards, it was quiet a display. I had Ray drive me over to Marshall Luke's shop which was my next stop. I just thought that those two should meet and I was right. Turns out, they had meet years earlier when Marshall was suffering a frivolus law suit. Ray was the attorney for the complainant and even though they were on opposite sides, they connected over their common interests. When I knocked on the door and Marshall opened it up the first person he saw was Ray. The look on his face was priceless. The three of us spent an hour together looking at his projects and enjoying the moment. Later back at Rays house he gave me a couple keepsakes from his father Charlie Satter. An old ships ladder that had been repurposed into an ornamental wall hanging and a beautiful brass port light that must have weighed 30 pounds. A sailing scene painted by Charlie's wife Murkie was behind the glass.
The rest of the afternoon I spent with my old friends Will and Sofia who have kept a shop on West Hampden for many years. We had a great time catching up and reliving the good ol days. That night Stefania and I mad plans for her visit to Florida and went to bed early.
Friday morning we got up early and I drove to Bailey to visit my Mom who is staying with my sister Lousia and her husband John. It was a pleasure to be greeted with a smile by everybody. I guess time does heal all things. Mom was looking good and was in good spirits. Her memory isn't so good but she knows who we are and still surprises me with the things that she remembers.
Danny Hart lives only a couple of miles away on the other side of the highway. Danny is another old friend. I have known him since he was 8 years old and a camper at Camp Chief Ouray. Later he worked for me as a buyer and piano technician. A few years ago he bought 40 acres of beautiful countryside and installed a world class Frisbee Golf Course. Last weekend he had a Frisbee Tournament with 60 odd players and lots and lots of party. Ron Jolly and his trio were the nightly entertainment. We sat on his back porch and told each other about our events. Danny also gave me a mason jar from his garden…I was getting a lot of local produce to bring back home.
From Danny's house I drove out to Stapleton when I hooked up with Arnie Poppenberg who is 85 years young. Arnie remembers me from when I was a baby. He was a Factory Rep to my Grandfather and Father. In the 70's he worked for my dad as a salesman when I was going to Regis and working at the store. When I had my bicycle accident, Arnie was the guy who took me to an athletic club and helped me to get back into the game. Still going strong Arnie has a beautiful little place filled with moments of the good old days. We shared a meal and he promised to come visit in the spring.
Leaving my oldest living piano friend, I headed to Lakewood where I caught up with Tom Jensen. Tom's checkered past includes; being the conductor of the Colorado Ballet, hosting several talk radio shows on KNUS and KOA and for the last 20 years he has been the driving force behind Colorado Symphony's Tiny Tots Program. A confirmed bachelor since I have known him, Tom has recently married. They kept both houses and split their time between his old Batchor's pad in Brooks Towers and her Mansion in Lakewood.
From there I drove out to Parker where Marcia Renzi was throwing a birthday party for her husband Phil. The whole family was there including Marcia's sisters from California. We had a great time catching up and enjoying Phil's Birthday Cake. At nine o-clock I jumped in the truck and drove to Colorado Springs where I spent the night at Jerry Kerrs house.
Jerry and his wife Cathy have a lovely home on the southside not far from Meadowlake Airpark. Jerry and I have shared the skies since 2007, lots of Fly-Ins and lots of airtime. One of the smartest pilots I know Jerry is the epitome of the Man's Man. His career includes: Marine sniper, Head of Dallas SWAT, Dallas Helicopter pilot and Manitou Springs Detective. As a retirement job he signed on to month long stints on the fantail of mega tankers, picking off Somali pirates. The amazing thing is that while this guy can be a stone cold killer he is also the sweetest country gentleman that I know.
The plan was to get up early and catch a flight in the morning. So we watched a little Fox and tried to make sense of the presidential race.
Jerry has been fighting stage 4 Cancer for several years and despite it being inoperable he is still fighting and flying. As it turned out the winds wire too high to fly in the morning so I saddled up and hit the road.
We spent the night in Moab watching the Presidential Debate between Trump and Clinton. The next morning I hooked up with my old friend Bill Groff. Forty years ago he and his brother Robin were the wild men of Moab. Thirty years ago he was running "The Rim" , Moabs first and premier cyclery. And Moab transformed from a sad remnant from the Uranium boom into the Mecca of Mountain Biking. Today he is a respected city elder running for office. Who would have thunk it? His son is running the bike shop and Bill splitts his time between Aviation, Hunting, Politics and who knows what else.
Truth is …. he is still the same Ol Bill. One of the good guys. A guy who always bought a few bike parts when I stopped by. The last time we had seen each other was hunting Elk at the Grand Hotel in Peance Creek just before the turn of the century. Good friends last forever.
We missed the turn off for the longer scenic route back to Denver. It was a blessing in disguise because we got to Denver in time to drop the rig at John Sieb's house and meet up with the girls for dinner at Luigi's. I didn't say much. Memories of family dinners past occupied my mind. It didn't matter because Olivia was the life of the party with stories from her honeymoon. I sat and wondered when my little girls turned into the lovely women I was dining with.
We spent the night at the stunning new Marriot hotel at DIA.
The next morning I walked Dawn to security and called valet for the cab.