text:
from multiprocessing import cpu_count as _cpu_count
from multiprocessing.dummy import Pool as _Pool
from re import findall as _findall
from re import search as _search

from photon.photon import check_m
from photon.util.structures import to_list

rxlss = '(?P<loss>[\d.]+)[%] packet loss\n'
rxmst = 'time=([\d.]*) ms\n'
rxrtt = '(?P<min>[\d.]+)/(?P<avg>[\d.]+)/(?P<max>[\d.]+)/(?P<stddev>[\d.]+) ms'

class Ping(object):
    '''
    The Ping tool helps to send pings, returning detailed results each probe,
    and calculates a summary of all probes.

    :param six:
        Either use ``ping`` or ``ping6``
    :param net_if:
        Specify network interface to send pings from
    :param num:
        How many pings to send each probe
    :param packetsize:
        Specifies the number of data bytes to be sent
    :param max_pool_size:
        Hosts passed to :func:`probe` in form of a list,
        will be processed in parallel.
        Specify the maximum size of the thread pool workers here.
        If skipped, the number of current CPUs is used
    '''

    def __init__(self, m, six=False, net_if=None, num=5,
                 packetsize=None, max_pool_size=None):
        super().__init__()

        self.m = check_m(m)
        self.__ping_cmd = 'ping6' if six else 'ping'
        self.__net_if = '-I %s' % (net_if) if net_if else ''

        if not num:
            num = 1
        self.__num = '-c %d' % (num)

        if not packetsize:
            packetsize = ''
        if packetsize and packetsize > 1:
            packetsize = '-s %s' % (packetsize)
        self.__packetsize = packetsize

        if not max_pool_size:
            max_pool_size = _cpu_count()
        if max_pool_size < 1:
            max_pool_size = 1
        self.__max_pool_size = max_pool_size

        self.__probe_results = dict()

        self.m(
            'ping tool startup done',
            more=dict(
                pingc=self.__ping_cmd,
                net_if=self.__net_if,
                num=self.__num
            ),
            verbose=False
        )

    @property
    def probe(self):
        '''
        :param hosts:
            One or a list of hosts (URLs, IP-addresses) to send pings to

            * If you need to check multiple hosts, it is best \
            to pass them together as a list.

            * This will probe all hosts in parallel, \
            with ``max_pool_size`` workers.

        :returns:
            A dictionary with all hosts probed as keys specified as following:

        * 'up': ``True`` or ``False`` depending if ping was successful
        * 'loss': The packet loss as list (if 'up')
        * 'ms': A list of times each packet sent (if 'up')
        * 'rtt': A dictionary with the fields \
        *avg*, *min*, *max* & *stddev* (if 'up')
        '''

        return self.__probe_results

    @probe.setter
    def probe(self, hosts):
        '''
        .. seealso:: :attr:`probe`
        '''

        def __send_probe(host):
            ping = self.m(
                '',
                cmdd=dict(
                    cmd=' '.join([
                        self.__ping_cmd,
                        self.__num,
                        self.__net_if,
                        self.__packetsize,
                        host
                    ])
                ),
                critical=False,
                verbose=False
            )

            up = True if ping.get('returncode') == 0 else False
            self.__probe_results[host] = {'up': up}

            if up:
                p = ping.get('out')

                loss = _search(rxlss, p)
                ms = _findall(rxmst, p)
                rtt = _search(rxrtt, p)

                if loss:
                    loss = loss.group('loss')
                self.__probe_results[host].update(dict(
                    ms=ms,
                    loss=loss,
                    rtt=rtt.groupdict()
                ))

        hosts = to_list(hosts)
        pool_size = (
            len(hosts)
            if len(hosts) <= self.__max_pool_size else
            self.__max_pool_size
        )

        pool = _Pool(pool_size)
        pool.map(__send_probe, hosts)
        pool.close()
        pool.join()

    @property
    def status(self):
        '''
        :returns:
            A dictionary with the following:

        * 'num': Total number of hosts already probed
        * 'up': Number of hosts up
        * 'down': Number of hosts down
        * 'ratio': Ratio between 'up'/'down' as float

        Ratio:

        * ``100%`` up == `1.0`
        * ``10%`` up == `0.1`
        * ``0%`` up == `0.0`
        '''

        num = len(self.probe)
        up = len([h for h in self.probe if self.probe[h]['up']])
        ratio = up/num if num != 0 else 0  # over 9000!

        return dict(num=num, up=up, down=num-up, ratio=ratio)


This user entreats you to help him make his userpage look cool! Post nifty ideas on his talk page.
1 WELCOME TO ME... BASSBONE... RUNNER... I mean Bassbone.
 WELCOME TO ME... BASSBONE... RUNNER... I mean Bassbone.
I am a relatively new user here on the old HRWiki, though I enjoy contributing immenseley. I am currently a music major at Pasadena City College in Pasadena, CA. I live in nearby Burbank. My passions include the bass trombone and related instruments such as tenor trombone and euphonium as well as many forms of science-fiction and fantasy. The other great passion in my life is my girlfriend, without whom I'd be adrift in a sea of nothingness. I'm considered strange by my peers because I spend a lot of time reading books printed on paper instead of gossipping about The OC or some other young-adult related television show.
The username Bassbone is not derived from any combination of a type of fish and its skeletal structure. It's a combination of "Bass" and "Trombone" thus indicating my great passion in life.
I encounter Homestarrunner.com at some point around the Strong Bad Email interview or huttah. I overheard a few people in band talking about "burninating" and "Trogdor" and I wondered what the crap they were talking about. Later I saw some references in comments on Livejournal. Finally someone told me to check out Homestarrunner.com and I was instantly hooked. Due to my instant obsession with any fandom I encounter I spent the next several nights watching each email and toon at least twice.
I stumbled upon an easter egg in an email and desired to know more of them. A google search for "Homestar Runner Easter Eggs" led me straight to the wiki. I've been hanging out and reading for a while. I joined the forum a while ago as "The Chekt" after secret recipes. Finally after a bunch of minor anonymous edits and impatiently waiting through the restricted times I joined the wiki proper. I am seriously enjoying being a part of the community now.
As it says in my ridiculously long userbox I enjoy Gnome Work; fixing spelling and grammatical errors and the like. If you see any such errors on my user page or talk page, feel free to correct them. I'm also a member of the Recent Changes Patrol.
Added Old-Timey version of The Stage and added links to it. I reverted some vandalism to the suudsu page. I'm proud of myself.
Reverted many Willy on Wheels-style page moves as they happened.
I created my first article!! Yay! It'll probably get deleted, but so what?
Sbemail 169 Deleted Scene: Transcripts for the main scene, the commentary, and the three deleted scenes.
This is for my random thoughts on the wiki, it's operation, and anything else wiki related.
I have become eternally fascinated with the wiki concept after seriously sitting down to do some editing over the past couple days. Boy oh boy is patrolling recent changes difficult, though.
I love Firefox. Tabbed browsing makes complex editing so much more efficient.
What brings someone to vandalise a wiki, Particularly page blanks? Are they jealous because they're not able to contribute, or do the merely like to cause others pain and trouble?
As I'm happily editing the wiki I can't help but think that I'm gonna do something horribly bad to the knowledge base or something incredibly stupid and end up ruining it for everyone and/or getting banned/blocked. Anyone else have this fear? Discuss.
in your userbox tower or somewhere on the user page and leave a message on my talk page.
This box has nothing in it. You can help the Homestar Runner Wiki by adding nothing to it.
This page was last modified on 12 May 2008, at 08:50.


For Modbus devices that are controlled and detected by fixed addresses, users need to spend a vast amount of time researching and verifying the configurations. Users need to locate each device's networking details like I/O channels, or vendor-defined addresses to enable the initial or start address of a SCADA system or PLC. The ioLogik E1200, with user-definable Modbus/TCP addressing, offers greater flexibility, and setup is easy. Instead of worrying about individual devices, users simply configure the function and address map to fit their needs. .
For ordering information and pricing reference please visit product page.


text:
Mafia de Cuba
Havana, December 29, 1955: At the end of the meal offered at his "faithful" henchmen, Don Alessandro evokes the "business" in progress. Suddenly, the phone rang in the back room of the restaurant. The Godfather is convened to the office of President Batista. He entrusted his precious cigar box to his henchmen. It must be said that the cigar box has a false bottom, under the first layer of cigars, the box is filled with diamonds!
In Mafia de Cuba, each player will take the cigar box, open it and choose to:
Betray and steal some diamonds,
Remain a faithful and "honest" mafioso, be a driver, or act as an undercover CIA agent.
In the evening, the Godfather recovers his cigar box. He blow a fuse, when he find the disappearance of diamonds. He must find his treasure and punish offenders by providing them cement shoes before throwing them in the bay. After heated debates and perilous deductions, The Godfather, with the help of is faithful henchmen will try to find all his stolen diamonds.
Does he lose his honor by accusing wrongly?
Do the most cunning thieves win?
Or is it the CIA that will send these thugs behind bars?
Players: 2 - 12
Playtime: 10 - 20 Minutes
Ages: 10 +
Published by: Lui-Meme
Mafia de Cuba Expansion : Revolucion
Just when you thought it was safe to return to the island paradise of Cuba, it's time for the revolucion! New characters are joining the party and everyone has a secret agenda. The crooked lawyer will join forces with whoever suits his interests, the diamond lover hopes to get caught and the revolutionaries will win if the godfather accuses them.

redpajama_set_name: RedPajamaCommonCrawl


text:
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.combyne = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
var registerPartial = require('./shared/register_partial');
var registerFilter = require('./shared/register_filter');
var getPartial = require('./shared/get_partial');
var getFilter = require('./shared/get_filter');
var map = require('./shared/map');
var encode = require('./shared/encode');
var type = require('./utils/type');
var createObject = require('./utils/create_object');
require('./support/array/map');
require('./support/array/reduce');
var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
var escapes = {
        '\'': '\'',
        '\\': '\\',
        '\r': 'r',
        '\n': 'n',
        '\t': 't',
        '\u2028': 'u2028',
        '\u2029': 'u2029'
    };
function escapeValue(value) {
    return value.replace(escaper, function (match) {
        return '\\' + escapes[match];
    });
}
function normalizeIdentifier(identifier) {
    if (identifier === '.') {
        return '(data[\'.\'] || data)';
    }
    return 'data' + identifier.split('.').map(function (property) {
        return property ? '[\'' + property + '\']' : '';
    }).join('');
}
function Compiler(tree) {
    this.tree = tree;
    this.string = '';
    var nodes = this.optimize(this.tree.nodes);
    var compiledSource = this.process(nodes);
    var body = [];
    if (compiledSource) {
        compiledSource = ' + ' + compiledSource;
    }
    if (compiledSource.indexOf('map(') > -1) {
        body.push(createObject, type, map);
    }
    if (compiledSource.indexOf('encode(') > -1) {
        body.push(type, encode);
    }
    body = body.concat(['return \'\'' + compiledSource]).join(';\n');
    this.func = new Function('data', 'template', body);
    this.source = [
        '{',
        '_partials: {},',
        '_filters: {},',
        'getPartial: ' + getPartial + ',',
        'getFilter: ' + getFilter + ',',
        'registerPartial: ' + registerPartial + ',',
        'registerFilter: ' + registerFilter + ',',
        'render: function(data) {',
        'return ' + this.func + '(data, this)',
        '}',
        '}'
    ].join('\n');
}
Compiler.prototype.optimize = function (nodes) {
    return nodes.reduce(function (memo, node) {
        var previous = memo[memo.length - 1];
        if (previous && previous.type === 'Text' && node.type === 'Text') {
            previous.value += node.value;
        } else {
            memo.push(node);
        }
        return memo;
    }, []);
};
Compiler.prototype.process = function (nodes, keyVal) {
    var commands = [];
    nodes.map(function (node, index) {
        switch (node.type) {
        case 'RawProperty':
            commands.push(this.compileProperty(node, false));
            break;
        case 'Property':
            commands.push(this.compileProperty(node, true));
            break;
        case 'ConditionalExpression':
            commands.push(this.compileConditional(node));
            break;
        case 'LoopExpression':
            commands.push(this.compileLoop(node));
            break;
        case 'PartialExpression':
            commands.push(this.compilePartial(node));
            break;
        case 'ExtendExpression':
            commands.push(this.compileExtend(node));
            break;
        default:
            if (node.value) {
                commands.push('\'' + escapeValue(node.value) + '\'');
            }
            break;
        }
    }, this);
    return commands.join('+');
};
Compiler.prototype.compileProperty = function (node, encode) {
    var identifier = node.value;
    if (identifier.indexOf('\'') === -1 && identifier.indexOf('"') === -1) {
        identifier = normalizeIdentifier(node.value);
    }
    var normalizeArgs = node.args.map(function (arg) {
            var value = arg.value;
            return arg.type === 'Literal' ? value : normalizeIdentifier(value);
        });
    var value = [
            '(',
            'typeof',
            identifier,
            '===',
            '\'function\'',
            '?',
            encode ? 'encode(' + identifier + '(' + normalizeArgs + '))' : identifier + '(' + normalizeArgs + ')',
            ':',
            encode ? 'encode(' + identifier + ') == null ? \'\' : encode(' + identifier + ')' : identifier + ' == null ? \'\' : ' + identifier,
            ')'
        ].join(' ');
    value = node.filters.reduce(function (memo, filter) {
        var args = filter.args.length ? ', ' + filter.args.map(function (arg) {
                var value = arg.value;
                if (value.indexOf('\'') === -1 && value.indexOf('"') === -1) {
                    if (Number(value) !== Number(value)) {
                        if (value !== 'true' && value !== 'false') {
                            return normalizeIdentifier(value);
                        }
                    }
                }
                return value;
            }).join(', ') : '';
        return 'template.getFilter(\'' + filter.value + '\')' + '(' + memo + args + ')';
    }, value);
    return value;
};
Compiler.prototype.compileConditional = function (node) {
    if (node.conditions.length === 0) {
        throw new Error('Missing conditions to if statement');
    }
    var _this = this;
    var condition = node.conditions.map(function (condition) {
            switch (condition.type) {
            case 'Identifier':
                return _this.compileProperty(condition.value, condition.value.type == 'Property');
            case 'Not':
                return '!';
            case 'Literal':
                return condition.value;
            case 'Equality':
                return condition.value;
            }
        }).join('');
    var els = node.els ? this.process(node.els.nodes) : null;
    var elsif = node.elsif ? this.compileConditional(node.elsif) : null;
    return [
        '(',
        '(',
        condition,
        ')',
        '?',
        this.process(node.nodes) || '\'\'',
        ':',
        els || elsif || '\'\'',
        ')'
    ].join('');
};
Compiler.prototype.compileLoop = function (node) {
    var conditions = node.conditions;
    var keyVal = [
            conditions[3] ? conditions[3].value : 'i',
            conditions[2] ? conditions[2].value : '.'
        ];
    var value = conditions.length && conditions[0].value;
    var loop = [
            'map(',
            value ? this.compileProperty(value, value.type == 'Property') : 'data',
            ',',
            '\'',
            keyVal[0],
            '\'',
            ',',
            '\'',
            value ? keyVal[1] : '',
            '\'',
            ',',
            'data',
            ',',
            'function(data) {',
            'return ' + this.process(node.nodes, keyVal),
            '}',
            ').join(\'\')'
        ].join('');
    return loop;
};
Compiler.prototype.compilePartial = function (node) {
    return [
        '(',
        'template.getPartial(\'',
        node.value,
        '\').render(',
        typeof node.data !== 'string' ? this.compileProperty(node.data, true) : node.data,
        ')',
        ')'
    ].join('');
};
Compiler.prototype.compileExtend = function (node) {
    return [
        '(',
        'template.getPartial(\'',
        node.value.template.trim(),
        '\').registerPartial',
        '(\'',
        node.value.partial.trim(),
        '\', { render: function(_data) {',
        'data = _data || data;',
        'return ',
        this.process(node.nodes),
        ';',
        '}, data: data, _filters: {}, _partials: {} }),',
        'template.getPartial(\'',
        node.value.template.trim(),
        '\').render(data)',
        ')'
    ].join('');
};
module.exports = Compiler;
},{"./shared/encode":4,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/map":7,"./shared/register_filter":8,"./shared/register_partial":9,"./support/array/map":11,"./support/array/reduce":12,"./utils/create_object":17,"./utils/type":21}],2:[function(require,module,exports){
'use strict';
var escapeDelimiter = require('./utils/escape_delimiter');
require('./support/array/map');
require('./support/array/some');
function Grammar(delimiters) {
    this.delimiters = delimiters;
    this.internal = [
        makeEntry('START_IF', 'if'),
        makeEntry('ELSE', 'else'),
        makeEntry('ELSIF', 'elsif'),
        makeEntry('END_IF', 'endif'),
        makeEntry('NOT', 'not'),
        makeEntry('EQUALITY', '=='),
        makeEntry('NOT_EQUALITY', '!='),
        makeEntry('GREATER_THAN_EQUAL', '>='),
        makeEntry('GREATER_THAN', '>'),
        makeEntry('LESS_THAN_EQUAL', '<='),
        makeEntry('LESS_THAN', '<'),
        makeEntry('START_EACH', 'each'),
        makeEntry('END_EACH', 'endeach'),
        makeEntry('ASSIGN', 'as'),
        makeEntry('PARTIAL', 'partial'),
        makeEntry('START_EXTEND', 'extend'),
        makeEntry('END_EXTEND', 'endextend'),
        makeEntry('MAGIC', '.')
    ];
}
function makeEntry(name, value) {
    var escaped = escapeDelimiter(value);
    return {
        name: name,
        escaped: escaped,
        test: new RegExp('^' + escaped)
    };
}
Grammar.prototype.escape = function () {
    var grammar = [
            'START_RAW',
            'START_PROP',
            'START_EXPR',
            'END_RAW',
            'END_PROP',
            'END_EXPR',
            'COMMENT',
            'FILTER'
        ];
    grammar = grammar.map(function (key) {
        return makeEntry(key, this.delimiters[key]);
    }, this);
    grammar.push.apply(grammar, this.internal);
    var string = grammar.map(function (value) {
            return value.escaped;
        }).join('|');
    grammar.push({
        name: 'WHITESPACE',
        test: /^[\ \t\r\n]+/
    });
    string += '| |\t|\r|\n';
    grammar.push({
        name: 'OTHER',
        test: new RegExp('^((?!' + string + ').)*')
    });
    return grammar;
};
module.exports = Grammar;
},{"./support/array/map":11,"./support/array/some":13,"./utils/escape_delimiter":19}],3:[function(require,module,exports){
'use strict';
var Grammar = require('./grammar');
var Tokenizer = require('./tokenizer');
var Tree = require('./tree');
var Compiler = require('./compiler');
var registerPartial = require('./shared/register_partial');
var registerFilter = require('./shared/register_filter');
var getPartial = require('./shared/get_partial');
var getFilter = require('./shared/get_filter');
var type = require('./utils/type');
var defaults = require('./utils/defaults');
var defaultDelimiters = {
        START_RAW: '{{{',
        END_RAW: '}}}',
        START_PROP: '{{',
        END_PROP: '}}',
        START_EXPR: '{%',
        END_EXPR: '%}',
        COMMENT: '--',
        FILTER: '|'
    };
function Combyne(template, data) {
    if (!(this instanceof Combyne)) {
        return new Combyne(template, data);
    }
    this.template = template;
    this.data = data || {};
    this._partials = {};
    this._filters = {};
    if (type(this.template) !== 'string') {
        throw new Error('Template must be a String.');
    }
    var delimiters = defaults(Combyne.settings.delimiters, defaultDelimiters);
    var grammar = new Grammar(delimiters).escape();
    var stack = new Tokenizer(this.template, grammar).parse();
    var tree = new Tree(stack).make();
    this.tree = tree;
    this.stack = stack;
    this.compiler = new Compiler(tree);
    this.source = this.compiler.source;
}
Combyne.prototype.registerPartial = registerPartial;
Combyne.prototype.registerFilter = registerFilter;
Combyne.prototype.getPartial = getPartial;
Combyne.prototype.getFilter = getFilter;
Combyne.settings = {};
Combyne.prototype.render = function (data) {
    this.data = data || this.data;
    return this.compiler.func(this.data, this);
};
Combyne.VERSION = '0.8.1';
module.exports = Combyne;
},{"./compiler":1,"./grammar":2,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/register_filter":8,"./shared/register_partial":9,"./tokenizer":15,"./tree":16,"./utils/defaults":18,"./utils/type":21}],4:[function(require,module,exports){
'use strict';
var type = require('../utils/type');
function encode(raw) {
    if (type(raw) !== 'string') {
        return raw;
    }
    return raw.replace(/["&'<>`]/g, function (match) {
        return '&#' + match.charCodeAt(0) + ';';
    });
}
module.exports = encode;
},{"../utils/type":21}],5:[function(require,module,exports){
'use strict';
function getFilter(name) {
    if (name in this._filters) {
        return this._filters[name];
    } else if (this._parent) {
        return this._parent.getFilter(name);
    }
    throw new Error('Missing filter ' + name);
}
module.exports = getFilter;
},{}],6:[function(require,module,exports){
'use strict';
function getPartial(name) {
    if (name in this._partials) {
        return this._partials[name];
    } else if (this._parent) {
        return this._parent.getPartial(name);
    }
    throw new Error('Missing partial ' + name);
}
module.exports = getPartial;
},{}],7:[function(require,module,exports){
'use strict';
var type = require('../utils/type');
var createObject = require('../utils/create_object');
require('../support/array/is_array');
function map(obj, index, value, data, iterator) {
    var isArrayLike = type(obj) === 'arguments' || type(obj) === 'nodelist';
    var isArray = Array.isArray(obj) || isArrayLike;
    var output = [];
    var dataObject;
    if (isArray) {
        obj = [].slice.call(obj);
        for (var i = 0; i < obj.length; i++) {
            dataObject = createObject(data);
            dataObject[index] = i;
            if (value) {
                dataObject[value] = obj[i];
            } else {
                dataObject = obj[i];
            }
            output.push(iterator(dataObject));
        }
        return output;
    } else {
        for (var key in obj) {
            if (!obj.hasOwnProperty(key)) {
                continue;
            }
            dataObject = createObject(data);
            dataObject[index] = key;
            if (value) {
                dataObject[value] = obj[key];
            } else {
                dataObject = obj[key];
            }
            output.push(iterator(dataObject));
        }
        return output;
    }
}
module.exports = map;
},{"../support/array/is_array":10,"../utils/create_object":17,"../utils/type":21}],8:[function(require,module,exports){
'use strict';
function registerFilter(name, callback) {
    this._filters[name] = callback;
}
module.exports = registerFilter;
},{}],9:[function(require,module,exports){
'use strict';
function registerPartial(partialName, template) {
    this._partials[partialName] = template;
    template._parent = this;
}
module.exports = registerPartial;
},{}],10:[function(require,module,exports){
'use strict';
var type = require('../../utils/type');
if (Array.isArray) {
    return isArray;
}
function isArray(arg) {
    return type(arg) === '[object Array]';
}
module.exports = Array.isArray = isArray;
},{"../../utils/type":21}],11:[function(require,module,exports){
'use strict';
if (Array.prototype.map) {
    return map;
}
function map(iterator, thisArg) {
    if (this == null) {
        throw new TypeError();
    }
    if (typeof iterator !== 'function') {
        throw new TypeError();
    }
    thisArg = thisArg || this;
    var array = Array.prototype.slice.call(this);
    var retVal = [];
    for (var i = 0; i < array.length; i++) {
        if (i in array) {
            retVal[retVal.length] = iterator.call(thisArg, array[i], i, array);
        }
    }
    return retVal;
}
module.exports = Array.prototype.map = map;
},{}],12:[function(require,module,exports){
'use strict';
if (Array.prototype.reduce) {
    return reduce;
}
function reduce(iterator, memo) {
    if (this == null) {
        throw new TypeError();
    }
    if (typeof iterator !== 'function') {
        throw new TypeError();
    }
    var array = Array.prototype.slice.call(this);
    for (var i = 0; i < array.length; i++) {
        if (i in array) {
            memo = iterator(memo, array[i], i, array);
        }
    }
    return memo;
}
module.exports = Array.prototype.reduce = reduce;
},{}],13:[function(require,module,exports){
'use strict';
if (Array.prototype.some) {
    return some;
}
function some(iterator, thisArg) {
    if (this == null) {
        throw new TypeError();
    }
    if (typeof iterator !== 'function') {
        throw new TypeError();
    }
    thisArg = thisArg || this;
    var array = Array.prototype.slice.call(this);
    for (var i = 0; i < array.length; i++) {
        if (i in array) {
            if (iterator.call(thisArg, array[i], i, array)) {
                return true;
            }
        }
    }
    return false;
}
module.exports = Array.prototype.some = some;
},{}],14:[function(require,module,exports){
'use strict';
if (String.prototype.trim) {
    return trim;
}
function trim() {
    return this.replace(/^\s+|\s+$/g, '');
}
module.exports = String.prototype.trim = trim;
},{}],15:[function(require,module,exports){
'use strict';
require('./support/array/some');
function Tokenizer(template, grammar) {
    this.template = template;
    this.grammar = grammar;
    this.stack = [];
}
function parseNextToken(template, grammar, stack) {
    grammar.some(function (token) {
        var capture = token.test.exec(template);
        if (capture && capture[0]) {
            template = template.replace(token.test, '');
            stack.push({
                name: token.name,
                capture: capture
            });
            return true;
        }
    });
    return template;
}
Tokenizer.prototype.parse = function () {
    var template = this.template;
    var grammar = this.grammar;
    var stack = this.stack;
    var stackLen = 0;
    while (template.length) {
        template = parseNextToken(template, grammar, stack);
        stackLen = stack.length;
        if (stackLen - 2 >= 0) {
            stack[stackLen - 1].previous = stack[stackLen - 2];
        }
    }
    return stack;
};
module.exports = Tokenizer;
},{"./support/array/some":13}],16:[function(require,module,exports){
'use strict';
require('./support/string/trim');
var parseProperty = require('./utils/parse_property');
function Tree(stack) {
    this.stack = stack.slice();
    this.root = {
        type: 'Template',
        nodes: []
    };
}
Tree.prototype.make = function (root, END) {
    root = root || this.root;
    var node, result, prev, next;
    var index = 0;
    while (this.stack.length) {
        node = this.stack.shift();
        prev = node.previous || {};
        next = this.stack[0] || {};
        switch (node.name) {
        case 'START_RAW':
            root.nodes.push(this.constructProperty(false));
            break;
        case 'START_PROP':
            root.nodes.push(this.constructProperty(true));
            break;
        case 'START_EXPR':
            if (result = this.constructExpression(root, END)) {
                root.nodes.push(result);
                break;
            } else if (result !== false) {
                return null;
            }
            break;
        case 'END_EXPR':
            break;
        case 'WHITESPACE':
            var capture = node.capture[0];
            var idx = capture.indexOf('\n');
            if (prev.name === 'END_EXPR') {
                if (next.name === 'START_EXPR' && idx > -1) {
                    capture = '';
                } else if (idx > -1) {
                    capture = capture.slice(idx + 1);
                }
            } else if (prev.name && next.name === 'START_EXPR' && idx > -1) {
                capture = capture.slice(0, capture.lastIndexOf('\n') + 1);
            }
            root.nodes.push({
                type: 'Text',
                value: capture
            });
            break;
        default:
            var prevWhitespace = '';
            prev = root.nodes[root.nodes.length - 1] || {};
            root.nodes.push({
                type: 'Text',
                value: prevWhitespace + node.capture[0]
            });
            break;
        }
        ++index;
    }
    return root;
};
Tree.prototype.constructProperty = function (encoded) {
    var propertyDescriptor = {
            type: encoded ? 'Property' : 'RawProperty',
            value: '',
            args: [],
            filters: []
        };
    var previous;
    var input = '';
    var processParsedProperty = function () {
        var parts = input.trim().split(' ');
        propertyDescriptor.value = parts[0];
        propertyDescriptor.args = parts.slice(1).map(parseProperty);
    };
    while (this.stack.length) {
        var node = this.stack.shift();
        var next = this.stack[0] || {};
        if (node.name === 'ASSIGN' && next.name !== 'WHITESPACE') {
            node.name = 'OTHER';
        }
        switch (node.name) {
        case 'FILTER':
            propertyDescriptor.value = input.trim();
            return this.constructFilter(propertyDescriptor);
        case 'END_EXPR':
        case 'EQUALITY':
        case 'NOT_EQUALITY':
        case 'GREATER_THAN':
        case 'GREATER_THAN_EQUAL':
        case 'LESS_THAN':
        case 'LESS_THAN_EQUAL':
        case 'ASSIGN':
            processParsedProperty();
            this.stack.unshift(node);
            return propertyDescriptor;
        case 'END_RAW':
        case 'END_PROP':
        case 'END_EXPR':
            processParsedProperty();
            return propertyDescriptor;
        default:
            input += node.capture[0];
            break;
        }
        previous = node;
    }
    throw new Error('Unterminated property.');
};
Tree.prototype.constructExtend = function (root) {
    root.type = 'ExtendExpression';
    var value = {
            template: '',
            partial: ''
        };
    var side = 'template';
    LOOP:
        while (this.stack.length) {
            var node = this.stack.shift();
            switch (node.name) {
            case 'END_EXPR':
                break LOOP;
            case 'ASSIGN':
                side = 'partial';
                break;
            default:
                value[side] += node.capture[0];
                break;
            }
        }
    value.template = value.template.trim();
    value.partial = value.partial.trim();
    root.value = value;
    if (!root.value.template) {
        throw new Error('Missing valid template name.');
    }
    if (!root.value.partial) {
        throw new Error('Missing valid partial name.');
    }
    this.make(root, 'END_EXTEND');
    return root;
};
Tree.prototype.constructPartial = function (root) {
    root.type = 'PartialExpression';
    root.value = '';
    root.data = 'null';
    delete root.nodes;
    var wsCount = 0;
    LOOP:
        while (this.stack.length) {
            var node = this.stack.shift();
            switch (node.name) {
            case 'END_EXPR':
                break LOOP;
            default:
                if (node.name === 'WHITESPACE') {
                    wsCount++;
                }
                if (wsCount === 1) {
                    root.value += node.capture[0].trim();
                } else {
                    root.data = this.constructProperty(true);
                }
                break;
            }
        }
    if (!root.value) {
        throw new Error('Missing valid partials name.');
    }
    return root;
};
Tree.prototype.constructFilter = function (root) {
    var current = {
            type: 'Filter',
            args: []
        };
    var previous;
    var input = '';
    LOOP:
        while (this.stack.length) {
            var node = this.stack.shift();
            var next = this.stack[0] || {};
            if (node.name === 'ASSIGN' && next.name !== 'WHITESPACE') {
                node.name = 'OTHER';
            }
            switch (node.name) {
            case 'END_EXPR':
            case 'EQUALITY':
            case 'NOT_EQUALITY':
            case 'GREATER_THAN':
            case 'GREATER_THAN_EQUAL':
            case 'LESS_THAN':
            case 'LESS_THAN_EQUAL':
            case 'ASSIGN':
                root.filters.push(current);
                this.stack.unshift(node);
                break LOOP;
            case 'END_RAW':
            case 'END_PROP':
                root.filters.push(current);
                break LOOP;
            case 'FILTER':
                root.filters.push(current);
                this.constructFilter(root);
                break LOOP;
            default:
                input += node.capture[0];
            }
            previous = node;
        }
    var parts = input.trim().split(' ');
    current.value = parts[0];
    if (!current.value) {
        throw new Error('Missing valid filter name.');
    }
    current.args = parts.slice(1).map(parseProperty);
    return root;
};
Tree.prototype.constructEach = function (root) {
    root.type = 'LoopExpression';
    root.conditions = [];
    var isLeftSide = true;
    LOOP:
        while (this.stack.length) {
            var node = this.stack.shift();
            switch (node.name) {
            case 'ASSIGN':
                isLeftSide = false;
                root.conditions.push({
                    type: 'Assignment',
                    value: node.capture[0].trim()
                });
                break;
            case 'END_EXPR':
                break LOOP;
            case 'WHITESPACE':
                break;
            default:
                if (!isLeftSide) {
                    root.conditions.push({
                        type: 'Identifier',
                        value: node.capture[0].trim()
                    });
                } else {
                    this.stack.unshift(node);
                    root.conditions.push({
                        type: 'Identifier',
                        value: this.constructProperty(node.name != 'START_RAW')
                    });
                }
                break;
            }
        }
    this.make(root, 'END_EACH');
    return root;
};
Tree.prototype.constructComment = function (root) {
    var previous = {};
    while (this.stack.length) {
        var node = this.stack.shift();
        switch (node.name) {
        case 'COMMENT':
            if (previous.name === 'START_EXPR') {
                this.constructComment(root);
            }
            break;
        case 'END_EXPR':
            if (previous.name === 'COMMENT') {
                return false;
            }
            break;
        }
        previous = node;
    }
    return false;
};
Tree.prototype.constructConditional = function (root, kind) {
    root.type = root.type || 'ConditionalExpression';
    root.conditions = root.conditions || [];
    var prev = {};
    if (kind === 'ELSE') {
        root.els = {
            nodes: [],
            type: 'ConditionalExpression'
        };
        return this.make(root.els, 'END_IF');
    }
    if (kind === 'ELSIF') {
        root.elsif = { nodes: [] };
        this.constructConditional(root.elsif, 'SKIP');
        return this.make(root.elsif, 'END_IF');
    }
    LOOP:
        while (this.stack.length) {
            var node = this.stack.shift();
            var value = node.capture[0].trim();
            switch (node.name) {
            case 'NOT':
                root.conditions.push({ type: 'Not' });
                break;
            case 'EQUALITY':
            case 'NOT_EQUALITY':
            case 'GREATER_THAN':
            case 'GREATER_THAN_EQUAL':
            case 'LESS_THAN':
            case 'LESS_THAN_EQUAL':
                root.conditions.push({
                    type: 'Equality',
                    value: node.capture[0].trim()
                });
                break;
            case 'END_EXPR':
                break LOOP;
            default:
                var prevCondition = root.conditions[root.conditions.length - 1];
                if (node.name === 'WHITESPACE') {
                    value = node.capture[0];
                    if (!root.conditions.length || prevCondition.type !== 'Literal') {
                        break;
                    }
                }
                var property = parseProperty(value);
                if (property.type === 'Literal') {
                    root.conditions.push(property);
                } else if (prev.type === 'Literal') {
                    prev.value += value;
                } else {
                    if (node.name != 'START_RAW' && node.name != 'START_PROP') {
                        this.stack.unshift(node);
                    }
                    root.conditions.push({
                        type: 'Identifier',
                        value: this.constructProperty(node.name != 'START_RAW')
                    });
                }
                break;
            }
            prev = root.conditions[root.conditions.length - 1] || {};
        }
    if (kind !== 'SKIP') {
        this.make(root, 'END_IF');
    }
    return root;
};
Tree.prototype.constructExpression = function (root, END) {
    var expressionRoot = { nodes: [] };
    while (this.stack.length) {
        var type = this.stack.shift();
        switch (type.name) {
        case END:
            return;
        case 'WHITESPACE':
            break;
        case 'COMMENT':
            return this.constructComment(expressionRoot);
        case 'START_EACH':
            return this.constructEach(expressionRoot);
        case 'ELSIF':
        case 'ELSE':
        case 'START_IF':
            if (type.name !== 'START_IF') {
                expressionRoot = root;
            }
            return this.constructConditional(expressionRoot, type.name);
        case 'PARTIAL':
            return this.constructPartial(expressionRoot);
        case 'START_EXTEND':
            return this.constructExtend(expressionRoot);
        default:
            throw new Error('Invalid expression type: ' + type.name);
        }
    }
};
module.exports = Tree;
},{"./support/string/trim":14,"./utils/parse_property":20}],17:[function(require,module,exports){
'use strict';
function createObject(parent) {
    function F() {
    }
    F.prototype = parent;
    return new F();
}
module.exports = createObject;
},{}],18:[function(require,module,exports){
'use strict';
function defaults(target, source) {
    target = target || {};
    source = source;
    for (var key in source) {
        if (!source.hasOwnProperty(key)) {
            continue;
        }
        if (!(key in target)) {
            target[key] = source[key];
        }
    }
    return target;
}
module.exports = defaults;
},{}],19:[function(require,module,exports){
'use strict';
var specialCharsExp = /[\^$\\\/.*+?()\[\]{}|]/g;
function escapeDelimiter(delimiter) {
    return delimiter.replace(specialCharsExp, '\\$&');
}
module.exports = escapeDelimiter;
},{}],20:[function(require,module,exports){
'use strict';
var isString = /['"]+/;
function parseProperty(value) {
    var retVal = {
            type: 'Property',
            value: value
        };
    if (value === 'false' || value === 'true') {
        retVal.type = 'Literal';
    } else if (Number(value) === Number(value)) {
        retVal.type = 'Literal';
    } else if (isString.test(value)) {
        retVal.type = 'Literal';
    }
    return retVal;
}
module.exports = parseProperty;
},{}],21:[function(require,module,exports){
'use strict';
function type(value) {
    return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
}
module.exports = type;
},{}]},{},[3])(3)
});

redpajama_set_name: RedPajamaGithub


The Big Sandy Unit The northernmost unit of the refuge contains 21,380 acres.
Britton Ford Hiking Trail This 2.5 moderate interpretive trail winds through the forest along Kentucky Lake. Seasonally open from March 16 through November 14.
Chickasaw National Recreation Trail This 1.2 mile easy hiking interpretive trail features a woodland walk that includes several historic old homesteads.
Sulphur Well Bay Canoeing and Kayaking This seasonally open bay is a great place to paddle, however it is closed for during the sanctuary period of November 15 through March 15.
Bennett's Creek Canoeing and Kayaking This seasonally open bay is a great place to explore from March 16 through November 14.
Duck River Unit The largest unit of the refuge contains 26,743 acres of diverse habitat types.
Duck River Bottoms The large bottomland wetland area has sometimes been called the heart of the refuge.
Blue Goose Boulevard Wildlife Interpretive Drive Let the blue goose guide you through this wetland area drive. Seasonally closed from November 15 through March 15.
Clear Lake Canoeing and Kayaking Explore this long impoundment off Refuge Lane in Duck River Bottoms. Seasonally closed from November 15 through March 15.
Gaynor Slough Canoeing and Kayaking A very scenic and wildlife filled place to dip a canoe or kayak.
Pool 6 Canoeing and Kayaking Located just off Refuge Lane in Duck River Bottoms, this impoundment is open March 16 through November 14.
Eagle Creek Canoeing and Kayaking This bay of Kentucky Lake is open year round, but gets somewhat shallow in the summer months.
Morgan Creek and Nix Landing Canoeing and Kayaking Morgan Creek Bay is open year round. Nix Landing and the Tie Yard is closed during sanctuary period from November 15 to March 15.
Busseltown Unit This small unique unit of the refuge contains 3,262 acres. The entire unit is seasonally closed for sanctuary from November 15 to March 15.
Burton's Pond Canoeing and Kayaking This favorite fishing spot is also excellent for paddling. Seasonally closed from November 15 to March 15.
Busseltown Impoundment Located near the Tennessee River, this impoundment is seasonally closed due to sanctuary for watefowl from November 15 to March 15.


text:
Q: trying to calculate "Standard internal multiplication" between tow list in python I'm trying to writhe a function that receives two lists in its input and returns their standard internal multiplication. I tried to do this with the FOR loop help but without success.
The function returns None if the list length is not the same and also returns "0" if the lists are empty.
I would be very happy if you examine my code and tell me what the problem might be and why the action is not being done to me.
Code:
def inner_product(vec_1, vec_2):
    counter = 0
    for i in range(len(vec_1), len(vec_2)):
        if len(vec_1) != len(vec_2):
            return None
        elif len(vec_1) or len(vec_2) == []:
            return "0"
        else:
            counter = vec_1[i]*vec_2[i]
            return counter

print(inner_product([1, 2, 3], [4, 5, 6]))

A: If I understand what you want, you're looking to do three things:

*

*If the "vectors" (in python, lists) are not the same length, return None

*If either list is empty, return 0

*Otherwise, multiply the numbers together from the same index in each list. e.g element 1 * element 1, element 2 * element 2.

*Return that list from your function to be printed

def inner_product(vec_1, vec_2):
    # Requirement 1
    if len(vec_1) != len(vec_2):
            return None
    # Requirement 2
    elif vec_1 == [] or vec_2 == []:
        return 0

    # Define a list to hold your values until you return it
    counter = []

    # range() takes a beginning integer (index in this case)
    # and an ending one. However, the range is exclusive of the last number
    # so even though len(vec_1) == 3, range will stop at 2

    for i in range(0, len(vec_2)):
        # Append the output to your counter array on each pass
        counter.append(vec_1[i]*vec_2[i])

    # Once the for loop is done, return the value
    return counter

# These should all return True

assert inner_product([], []) == 0
assert inner_product([1,2,3], [1,2]) is None
assert inner_product([1,2,3], [3,4,5]) == [3,8,15]

A: Assuming you want to compute the sum of the element-wise products, you can use the zip and sum builtins.  The zip function will iterate over two or more sequences together, in lockstep.
def inner_product(vec_1, vec_2):
    """ Return the inner product of `vec_1` and `vec_2` if they have the
    same length, or None otherwise.

    EXAMPLES
    >>> inner_product([], [])
    0
    >>> inner_product([1, 2], [3, 4])
    11
    >>> inner_product([1, 2, 3], [7]) is None
    True
    """
    if len(vec_1) != len(vec_2):
        return None

    return sum(e1 * e2 for e1, e2 in zip(vec_1, vec_2))

In this function, the empty list case is handled implicitly, since the default starting value for sum is 0.

redpajama_set_name: RedPajamaStackExchange


The new IoT solution "Smart Vending Machine" from Janz Tec networks vending machines for maintenance and service optimization. This solution can be used to monitor usage, configure machine settings and efficiently plan maintenance work.
With the IoT solution "Smart Vending Machine", Janz Tec makes Edge Gateways fit precisely into the machines, which record all previously defined data and transfer it to a central data cockpit. It shows e.g., operating hours, consumption quantities, the number of goods issued or current cash supply in the machine. The user interface and reports are configured according to specific needs.
Machine operators can view essential machine master data combined with location and usage data at a single glance. The geodata of the machines are displayed on maps and can also be integrated into existing route planning software products. By aligning maintenance work with actual use – instead of standardized service intervals – unnecessary journeys are fully eliminated. Machine downtimes are reduced. Machine operators therefore optimize their maintenance and service operations and achieve real cost savings.
The evaluability of actual use makes it possible for vending machine operators to switch from selling their machines to a pay-per-use business model. Here the actual use of the machine by customers is precisely recorded and billed. Remote settings of machine parameters, such as prices or recipes, can also be made from a central location as a service.
Local infrastructures often cannot be put to use for data transmission. Janz Tec therefore offers IoT gateways individually designed for the vending machines with powerful mobile communication solutions. SIM card management for selecting custom-fit data rates based on region and data volume rounds off the service package. Data centers and cloud services from Janz Tec partner companies are available for data storage and processing. These services provide scalable and redundant server space and meet the very latest requirements of IT security.
"The Smart Vending Machine is a very open and highly configurable system. It is characterized by its easy integration into existing infrastructures. There are many Web APIs that allow data to be read out easily and enriched data records from other applications to be restored," emphasizes Ulrich Lütke Entrup, Sales Manager at Janz Tec.
More information about the Smart Vending Machine can be found here.


text:
Office Hours: M,T,F 9-11am W,R 11-1pm Mass Times
333 East Campus Mall, Office 23
Vita Pura
Badger Catholic > Mass Times
There are numerous opportunities to attend Mass every Sunday, or even daily, in the UW-Madison campus area. Below are a few area Catholic churches close to the UW-Madison campus.
UW-Madison Campus Church: St. Paul University Catholic Center
www.uwcatholic.org
Fr. Eric Nielsen
Sunday: 8:00 am, 9:30 am, 11:15 am, 6:00 pm, 9:00 pm
Monday: 12:05 pm, 5:00 pm
Tuesday: 12:05 pm, 5:00 pm
Wednesday: 12:05 pm, 9:00 pm (Candlelight)
Thursday: 12:05 pm, 5:00 pm
Friday: 12:05 pm, 5:00 pm (Latin)
Saturday: 12:00 pm
Area Parishes Close to Campus
Holy Redeemer
Sunday: 9 am, 11 (Spanish), 5 pm
Monday: 12:10 pm
Tuesday: 12:10 pm
Wednesday: 12:10 pm
Thursday: 12:10 pm
Friday: 12:10 pm
Saturday: 8 am, 6:30 pm (Spanish)
120 W. Johnson St.
www.isthmuscatholic.org
Msgr. Kevin Holmes
Our Lady Queen of Peace Parish
Sunday: 8:30 am, 9:30, 11:15 am
Monday: 6:30 am, 8:30 am
Tuesday: 6:30 am, 8:30 am
Wednesday: 6:30 am, 8:30 am
Thursday: 6:30 am, 8:30 am
Friday: 6:30 am, 8:30 am
Saturday: 5 pm, 7 pm
401 S. Owen Drive
www.qopc.org
Msgr. Kenneth Fiedler
St. James Parish
Sunday: 8:30 am
Monday: No Mass
Thursday: No Mass
1204 St James Ct.
www.goodshepardmadison.org
Msgr. Thomas Baxter
Blessed Sacrament Parish
Sunday: 7:30 am, 9 am, 11 am
Tuesday: 7 am, 8:30 am
Wednesday: 7 am, 8:30 am
Thursday: 7 am, 8:30 am
Saturday: 8:30 am, 5 pm
2116 Hollister Ave.
www.blsacrament.org
Fr. Andy McAlpin, O.P.
Badger Catholic is the Catholic Student Organization at the University of Wisconsin Madison. Our mission is to provide spiritual resources and services to all Badgers at Madison, regardless of faith or creed.
About Badger Catholic
Copyright © 2018 Badger Catholic | Website by Mod9Multimedia


ILoveMakonnen Announces 'Drink More Water 6', Shares "Sellin"
ILoveMakonnen hasn't really given himself time to breathe recently, with an onslaught of releases that have kept the momentum going. Now he's getting ready for yet another release with the sixth entry in his ongoing Drink More Water mixtape series. To coincide with the announcement of the release, Makonnen has shared the casual video for the first single, "Sellin," which sees him effortlessly rapping around an art gallery.
Watch the video for "Sellin" above, and check out the cover art and tracklist for Drink More Water 6 below.


Now, OAS member countries should follow the steps of South America's MERCOSUR common market — made up of Argentina, Brazil, Paraguay, Uruguay and Venezuela — which recently suspended Venezuela's chairmanship for not abiding by the group's democracy clauses. MERCOSUR is now considering suspending Venezuela's membership.
Skeptics argue that Maduro's regime couldn't care less about being suspended from the OAS, but they are wrong.
Suspending Venezuela from the OAS would be an important show of support for Venezuela's opposition, and — internationally — it would help spread the notion that Venezuela has become a dictatorship. Becoming a pariah in his own region would make Maduro look weaker, and it would make it more difficult for him to get emergency loans or refinance Venezuela's debts.
According to OAS diplomatic sources, the Obama administration is not pushing for Venezuela's suspension from the OAS because it fears there won't be the two-thirds of OAS members' votes needed to do so. Many Caribbean nations that still get some Venezuelan oil subsidies are reluctant to vote against Maduro.
In addition, the Obama administration may fear that if Venezuela is suspended from the OAS, Bolivia and Nicaragua will quit in solidarity, which would weaken the organization. Obama is still hopeful that the Vatican's mediation, in addition to the negotiations led by former Spanish president José Luis Rodríguez Zapatero, will help find a peaceful solution to the country's escalating conflict.
My opinion: It makes no sense for the Obama administration to continue focusing exclusively on "engaging with Venezuela" and supporting mediation efforts such as Rodríguez Zapatero's, which have only helped the Maduro regime win time. Obama's unspoken goal may be to avoid an escalation of the Venezuelan crisis before he leaves office in January because it would taint his foreign policy legacy.
That would be the most effective way to reopen a constitutional path to solve the country's crisis and avoid an escalation of violence, and a possible wave of hundreds of thousands — perhaps millions — of Venezuelan refugees that would join the estimated 1.4 million who have already left the country. It's time to act, before it's too late.


text:
I boschi e arbusteti iberici sud-orientali sono un'ecoregione dell'ecozona paleartica, definita dal WWF (codice ecoregione: PA1219), che si estende, come indica il nome, nella parte sud-orientale della penisola iberica.

La regione fa parte della ecoregione globale 123 Formazioni forestali mediterranee, inclusa nella lista Global 200.

Territorio
Questa ecoregione ricopre un'area molto piccola, limitata ad una sottile striscia di terra lungo la costa sud-orientale della Spagna (Almería e Murcia). Climaticamente, l'ecoregione è caratterizzata da un clima molto caldo (con temperature medie invernali di circa 11-12 °C) ed estremamente secco (riceve tra i 200 e i 250 mm di pioggia all'anno). Inoltre, la regione è frequentemente spazzata da venti secchi come lo scirocco (siroco) proveniente dal Sahara, che ne intensificano la siccità.

Geologicamente, questa ecoregione presenta una composizione litologica e un rilievo molto complessi. Le rocce vulcaniche predominano in alcune aree costiere (ad esempio Cabo de Gata). Rocce sedimentarie cenozoiche e quaternarie, specialmente marne, gessi, calcari, sabbie e conglomerati, definiscono le pianure, le colline e le spoglie montagne della regione.

Flora
Questa ecoregione è caratterizzata dalla quasi totale assenza di specie arboree. Molto rari sono i rappresentanti di alcune specie di conifere xerofile, come pini, ginepri ed una straordinaria popolazione relitta di una conifera endemica del Nordafrica, il ginepro articolato (Tetraclinis articulata). Tamerici, pioppi bianchi e oleandri si possono rinvenire nel letto dei fiumi stagionalmente asciutti. La principale forma di vegetazione qui è costituita da una boscaglia che comprende molte specie di piante nordafricane quali Ziziphus lotus, Withania frutescens, Rosmarinus eriocalyx, Gymnosporia senegalensis, Cistus libanotis, Ephedra fragilis, Genista ramosissima, Chamaerops humilis e Launaea arborescens.

Numerose sono le specie di piccoli arbusti e di piante erbacee. Sui terreni ricchi di sale si sviluppano comunità di piante alofile, tra cui specie appartenenti ai generi Suaeda, Salsola, Limonium e Arthrocnemum, nonché Atriplex halimus, Anabasis articulata e Haloxylon salicornicum. Le comunità di boscaglie secche ospitano un gran numero di piante aromatiche e medicinali, tra cui varie specie dei generi Thymus, Salvia, Sideritis, Teucrium e Lavandula, e anche altre piante erbacee e succulente (come Caralluma europaea). Le distese erbose aride sono caratterizzate da alcune specie macro-erbacee del genere Stipa, da Lygeum spartum e da piccole specie arbustive come Artemisia herba-alba. Questa vegetazione è molto simile per aspetto e composizione di piante a quella delle vaste distese erbose di altitudine del Nordafrica.

Fauna
La fauna di questa ecoregione non è molto conosciuta. Tuttavia, sembra che l'unico gruppo di animali adattatosi a vivere in questa steppa semiarida sia quello degli uccelli, qui presenti con un gran numero di specie. Tra questi figurano la gallina prataiola (Tetrax tetrax), la ganga (Pterocles orientalis), la calandrina (Alaudala rufescens), la cappellaccia di Thekla (Galerida theklae), la monachella nera (Oenanthe leucura) e l'allodola di Dupont (Chersophilus duponti). Alcune lagune costiere costituiscono delle aree molto importanti per gli uccelli migratori. A Cabo de Gata vi sono più di 2000 fenicotteri (Phoenicopterus roseus), mentre la riserva naturale di Punta Entinas-Sabinar ospita due specie di gabbiano minacciate di estinzione, il gabbiano corso (Ichthyaetus audouinii) e il gabbiano roseo (Chroicocephalus genei), e l'occhione (Burhinus oedicnemus).

Tra i mammiferi presenti nell'ecoregione ricordiamo la volpe rossa (Vulpes vulpes), la genetta comune (Genetta genetta) e il tasso (Meles meles).

Conservazione

Non è chiaro se la steppa semiarida che caratterizza questa ecoregione rappresenti il suo aspetto originario o sia la conseguenza di un intenso sfruttamento del territorio da parte dell'uomo. Attualmente, gli studiosi stanno ancora discutendo se sia possibile che l'intenso processo di erosione che ha portato alla formazione di questa landa desolata sia il frutto dell'instabilità geologica della regione. Faglie e terremoti potrebbero aver alterato la morfologia del paesaggio ben prima della comparsa dell'uomo. Tuttavia, le testimonianze storiche indicano un passato di intenso sfruttamento umano, fatto di sovrapascolo e di estrazioni minerarie. La richiesta di legname necessario per alimentare le miniere di piombo sulla Sierra de Gádor tra il 1818 e il 1880, all'epoca le più produttive del mondo, portò al totale denudamento di gran parte delle montagne circostanti, provocando così un intenso impoverimento del manto forestale, difficile da quantificare.

Negli ultimi cinquant'anni si è registrato l'abbandono delle aree rurali e della pressoché totale scomparsa delle tradizionali attività pastorali (pecore e capre) e della raccolta di arbusti per la produzione di polpa di cellulosa.

Note

Voci correlate
 Lista delle ecoregioni terrestri

Altri progetti

Ecoregioni dell'ecozona paleartica

redpajama_set_name: RedPajamaWikipedia


text:
Check out the new look Butterworth Hall
The Butterworth Hall has been familiar to students at Warwick for nearly 30 years. Since 1981 it has played host to some of the greatest names from Kiri Te Kanawa and The Smiths to Jools Holland and even US President Bill Clinton.
Whether as a classical concert venue or the location for graduation ceremonies, the Butterworth Hall is integral to the Warwick experience. However, in recent years it has been in urgent need of modernisation.
Those of you who attend events on campus will know that the Hall had begun to look its age. Fortunately, thanks to the support of alumni and friends, the University was able to carry out much-needed redevelopment work which will ensure that the Hall remains one of the preeminent concert venues in the Midlands.
The £6.9 million redevelopment has seen investment in essential areas such as seating, acoustics, technical equipment and disabled access. There is also a new two-storey extension at the front of the building which houses a fantastic new space for artistic creation and improved backstage facilities for visiting artists, students, amateur groups and local schools. The redevelopment costs were raised from a number of sources, including support from the University and a number of major trusts and foundations as well as alumni, University staff and local residents.
Following the successful completion of the redevelopment, the Hall re-opened in October and has once again taken its place as the artistic heart of the campus. We would like to thank everyone who has supported Warwick Arts Centre and the University by contributing towards the Butterworth Hall redevelopment appeal. With your help, and that of many other generous people who value Warwick Arts Centre, we have been able to complete these essential improvements – ensuring that all visitors, whether they are students, members of the local community or alumni, have the best possible experience each and every time they visit.
This was the first occasion on which Warwick Arts Centre and the University appealed to alumni, friends and the general public for their support and we were delighted to find that so many people wanted to help – especially while economic conditions were so difficult.
Warwick Arts Centre is passionately committed to providing the highest quality cultural experience for students and the local community, not least in the newly built creative space which is already being used for a range of activities: for a hugely successful and growing arts education programme; for artistic residencies with leading international artists; for student music rehearsals; and for special small-scale public performances for your enjoyment.
You can find more information about news and events at Warwick Arts Centre on their website .
Last revised: Mon 27 Sep 2010


text:
Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland
Sheila Heymans, Kerry Howell, Morag Ayers, Michael Burrows, John D M Gordon, Emma G. Jones, Francis Neat
There is currently a global call for more use of an ecosystem approach to fisheries management (EAFM), and ecosystem models such as Ecopath with Ecosim (EwE) are being used to provide a holistic view of ecosystem-fisheries interactions. Although these can be useful for an EAFM, the relative paucity of data available for deep-sea ecosystems raises concerns whether we can effectively apply an EAFM to the deep sea. The deep-sea ecosystem off the west coast of Scotland has been studied for longer and in more detail than most. This study assimilates the significant published and unpublished information available on this ecosystem into an EwE model. The results suggest that there are sufficient data available to construct an ecosystem model, but the quality of the data varies and serious potential sources of error are present in biomass and discard estimates. The assumptions needed to produce a model are varied and must be considered when interpreting the outputs of the model. Ecosystem modelling provides a unique view of the deep-water ecosystem and facilitates hypothesis development concerning predator-prey and inter-fishery interactions. Sharks are used to illustrate the benefits of using an ecosystem model to describe changes in their biomass and their prey species. The results show that both fishing for sharks and fishing for their prey affect the biomass of sharks.
ICES J MAR SCI
https://doi.org/10.1093/icesjms/fsq065
DIFFERENT TRAWLS
ROCKALL TROUGH
WATER FISHERY
NORTHEAST ATLANTIC-OCEAN
DEMERSAL FISH
10.1093/icesjms/fsq065
Dive into the research topics of 'Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland'. Together they form a unique fingerprint.
deep-sea fishery Earth & Environmental Sciences 100%
ecosystem approach Earth & Environmental Sciences 72%
Scotland Agriculture & Biology 60%
fisheries Agriculture & Biology 54%
ecosystems Agriculture & Biology 42%
ecosystem Earth & Environmental Sciences 33%
shark Earth & Environmental Sciences 23%
fishery management Earth & Environmental Sciences 22%
1 Participation in conference
ICES Symposium on Deep Oceans
Sheila JJ Heymans (Speaker)
Heymans, S., Howell, K., Ayers, M., Burrows, M., Gordon, J. D. M., Jones, E. G., & Neat, F. (2011). Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland. ICES J MAR SCI, (8), 265-280. https://doi.org/10.1093/icesjms/fsq065
Heymans, Sheila ; Howell, Kerry ; Ayers, Morag ; Burrows, Michael ; Gordon, John D M ; Jones, Emma G. ; Neat, Francis. / Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland. In: ICES J MAR SCI. 2011 ; No. 8. pp. 265-280.
@article{df2f9ba70bd242caada959e410baddde,
title = "Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland",
abstract = "There is currently a global call for more use of an ecosystem approach to fisheries management (EAFM), and ecosystem models such as Ecopath with Ecosim (EwE) are being used to provide a holistic view of ecosystem-fisheries interactions. Although these can be useful for an EAFM, the relative paucity of data available for deep-sea ecosystems raises concerns whether we can effectively apply an EAFM to the deep sea. The deep-sea ecosystem off the west coast of Scotland has been studied for longer and in more detail than most. This study assimilates the significant published and unpublished information available on this ecosystem into an EwE model. The results suggest that there are sufficient data available to construct an ecosystem model, but the quality of the data varies and serious potential sources of error are present in biomass and discard estimates. The assumptions needed to produce a model are varied and must be considered when interpreting the outputs of the model. Ecosystem modelling provides a unique view of the deep-water ecosystem and facilitates hypothesis development concerning predator-prey and inter-fishery interactions. Sharks are used to illustrate the benefits of using an ecosystem model to describe changes in their biomass and their prey species. The results show that both fishing for sharks and fishing for their prey affect the biomass of sharks.",
keywords = " DIFFERENT TRAWLS, SHARKS, Marine & Freshwater Biology, FRONTIER, Oceanography, ROCKALL TROUGH, MORTALITY, WATER FISHERY, Fisheries, NORTHEAST ATLANTIC-OCEAN, DISCARDS, DEMERSAL FISH, TEMPERATURE",
author = "Sheila Heymans and Kerry Howell and Morag Ayers and Michael Burrows and Gordon, {John D M} and Jones, {Emma G.} and Francis Neat",
note = "Description 4* This paper utilized the historic data at SAMS (among other data) to assess the ability for science to manage deep sea fisheries in and ecosystem approach. The first time this was done for any deep sea. It showed the importance of data for management. ",
doi = "10.1093/icesjms/fsq065",
journal = "ICES Journal of Marine Science",
Heymans, S, Howell, K, Ayers, M, Burrows, M, Gordon, JDM, Jones, EG & Neat, F 2011, 'Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland', ICES J MAR SCI, no. 8, pp. 265-280. https://doi.org/10.1093/icesjms/fsq065
Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland. / Heymans, Sheila; Howell, Kerry; Ayers, Morag; Burrows, Michael; Gordon, John D M; Jones, Emma G.; Neat, Francis.
In: ICES J MAR SCI, No. 8, 2011, p. 265-280.
T1 - Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland
AU - Heymans, Sheila
AU - Howell, Kerry
AU - Ayers, Morag
AU - Burrows, Michael
AU - Gordon, John D M
AU - Jones, Emma G.
AU - Neat, Francis
N1 - Description 4* This paper utilized the historic data at SAMS (among other data) to assess the ability for science to manage deep sea fisheries in and ecosystem approach. The first time this was done for any deep sea. It showed the importance of data for management.
N2 - There is currently a global call for more use of an ecosystem approach to fisheries management (EAFM), and ecosystem models such as Ecopath with Ecosim (EwE) are being used to provide a holistic view of ecosystem-fisheries interactions. Although these can be useful for an EAFM, the relative paucity of data available for deep-sea ecosystems raises concerns whether we can effectively apply an EAFM to the deep sea. The deep-sea ecosystem off the west coast of Scotland has been studied for longer and in more detail than most. This study assimilates the significant published and unpublished information available on this ecosystem into an EwE model. The results suggest that there are sufficient data available to construct an ecosystem model, but the quality of the data varies and serious potential sources of error are present in biomass and discard estimates. The assumptions needed to produce a model are varied and must be considered when interpreting the outputs of the model. Ecosystem modelling provides a unique view of the deep-water ecosystem and facilitates hypothesis development concerning predator-prey and inter-fishery interactions. Sharks are used to illustrate the benefits of using an ecosystem model to describe changes in their biomass and their prey species. The results show that both fishing for sharks and fishing for their prey affect the biomass of sharks.
AB - There is currently a global call for more use of an ecosystem approach to fisheries management (EAFM), and ecosystem models such as Ecopath with Ecosim (EwE) are being used to provide a holistic view of ecosystem-fisheries interactions. Although these can be useful for an EAFM, the relative paucity of data available for deep-sea ecosystems raises concerns whether we can effectively apply an EAFM to the deep sea. The deep-sea ecosystem off the west coast of Scotland has been studied for longer and in more detail than most. This study assimilates the significant published and unpublished information available on this ecosystem into an EwE model. The results suggest that there are sufficient data available to construct an ecosystem model, but the quality of the data varies and serious potential sources of error are present in biomass and discard estimates. The assumptions needed to produce a model are varied and must be considered when interpreting the outputs of the model. Ecosystem modelling provides a unique view of the deep-water ecosystem and facilitates hypothesis development concerning predator-prey and inter-fishery interactions. Sharks are used to illustrate the benefits of using an ecosystem model to describe changes in their biomass and their prey species. The results show that both fishing for sharks and fishing for their prey affect the biomass of sharks.
KW - DIFFERENT TRAWLS
KW - SHARKS
KW - Marine & Freshwater Biology
KW - FRONTIER
KW - Oceanography
KW - ROCKALL TROUGH
KW - MORTALITY
KW - WATER FISHERY
KW - Fisheries
KW - NORTHEAST ATLANTIC-OCEAN
KW - DISCARDS
KW - DEMERSAL FISH
KW - TEMPERATURE
U2 - 10.1093/icesjms/fsq065
DO - 10.1093/icesjms/fsq065
JO - ICES Journal of Marine Science
JF - ICES Journal of Marine Science
Heymans S, Howell K, Ayers M, Burrows M, Gordon JDM, Jones EG et al. Do we have enough information to apply the ecosystem approach to management of deep-sea fisheries? An example from the West of Scotland. ICES J MAR SCI. 2011;(8):265-280. https://doi.org/10.1093/icesjms/fsq065


text:
You are here: Home > Latest news > Current Article
Regulators put tri-county crab season on ice
By Alex Kacik / Friday, November 6th, 2015 / Comments Off on Regulators put tri-county crab season on ice
Regulators have put crab season on ice.
The tri-county commercial fishing industry is feeling the sting of a toxin that's been found in some of the area's seafood.
The California Department of Public Health advised consumers in a Nov. 3 announcement not to eat Dungeness and rock crabs caught between the Oregon border and the southern Santa Barbara County line because some contained dangerous levels of domoic acid.
The California Department of Fish and Wildlife has since indefinitely closed the Dungeness and rock crab fisheries in that region, according to Chris Voss, executive director of the Commercial Fishermen of Santa Barbara.
"It's a disaster," he said.
The toxin can cause intestinal issues in mild cases; rare severe cases can lead to death, fish and wildlife officials said. But there have been no related illnesses yet, they said.
This is one of the busiest times for fishermen as the holidays near.
Rick Gutierrez works for the Santa Barbara Seafood Station, which is losing about $10,000 a week.
"There are three or four other companies in Santa Barbara that do the same amount of business," said Gutierrez, adding that they make about a third of their business this time of year.
But Santa Barbara fishermen contend that there haven't been enough tests, especially throughout Santa Barbara where fisheries span miles of open water. Public health officials have mainly tested the viscera, or the gut, not the meat, Voss said.
"We should be very careful in how we declare these closures and be certain they are necessary," said Voss, adding that the regulators haven't been responsive to repeated phone calls. "We are all concerned about catching and selling safe seafood but we also want the agencies that are in charge of closures to make sure they make them with justification."
The major buyers of Santa Barbara rock crab canceled all of their orders on Nov. 4, sources said. Smaller buyers followed suit shortly thereafter. Buyers are also asking for refunds of their current stock.
"Crab is an important part of California's culture and economy, and I did not make this decision lightly," Chuck Bonham, the fish and wildlife director, said in a Nov. 6 statement. "But doing everything we can to limit the risk to public health has to take precedence."
Santa Barbara commercial fishermen generated more than $1.9 million in 2013 from the sale of rock crab, according to CFSB. Santa Barbara supplies about 75 percent of California's rock crab; the vast majority is shipped outside of Santa Barbara for an average of $1.50 per pound.
The California Fish and Game Commission voted on Nov. 5 to postpone the recreational Dungeness season, as well as close recreational Dungeness and rock crab fisheries north of the Ventura County line. The commercial Dungeness crab season is slated to begin Nov. 15, while the recreational season was planned to start on Nov. 7. The commission closed the commercial rock crab season on Nov. 6.
"They have shown very little cause," Gutierrez said.
The state Office of Environmental Health Hazard Assessment endorsed the delay and closures after tests by the Department of Public Health found high levels of the neurotoxin potentially brought on by algae blooms that proliferate with warmer water.
About half of six samples of Santa Barbara rock crab collected on Nov. 3 had toxin levels above the safety threshold in the viscera, according to the public health department. But the sample size wasn't broad enough, Gutierrez said.
The safe levels, according to the department, are 20 parts per million in all fish and 30 parts per million in specifically the crab's viscera.
"The rising water temperature is really concerning," Gutierrez said.
Regional crab fishermen have already been hit by a six-week closure of fisheries near the Gaviota coast following May 19th's Refugio oil spill. They are also facing competition from Mexican fishermen who have been selling their product for about half of Santa Barbara's going rate, Gutierrez said.
The domoic acid scare has also hurt lobster sales, Voss said. The sales of California spiny lobster netted more than $3.3 million in 2013.
In the meantime, Santa Barbara commercial fishermen mull over potential legal action if the regulators aren't transparent with their findings and the methods used. They may perform independent tests as well.
The department of public health and the office of environmental health hazards will continue to test crab along the coast. Once two consecutive tests seven days apart demonstrate safe toxin levels, the department of fish and wildlife can reopen the fisheries.
"It appears the most recent results from the Central Coast indicate that concentrations are declining," Voss said.
But even after the crabs are deemed safe to eat, it may take some time for sales to rebound.
• Contact Alex Kacik at [email protected]
Port Hueneme's Stellar Biotechnologies trading on Nasdaq
FDA to review Amgen's new kidney disease dug
Alex Kacik
Real Estate & Finance Editor
View all articles by Alex Kacik »
Wells Fargo awards grants to small businesses hurt by wildfires
Tri-county legislators have bills pending
Dispute over three letters a sign of the times in SB
PacWest Bancorp reports higher second quarter earnings


On this edition of Houston Matters, we talk with Dave Fehling, Houston Public Media's State Impact reporter for energy and the environment, about concerns related to what are known as "reserve pits" on drilling sites.
These pits are dug on the site of a drilling rig and filled with waste that comes out of oil wells during the drilling process. This muddy, oily mix of saltwater, sand and drilling fluids can also include a variety of chemicals and even diesel fuel.
Some worry this mix will find its way into the water supply.
We discuss that possibility, how other states have addressed this issue, and whether the use of such reserve pits is common here in Greater Houston.
Also: Later this month, Rice Sociologist Stephen Klineberg will join us to share the findings from the annual Kinder Institute Houston Area Survey. For 33 years now, the survey has measured Greater Houston's economic and demographic changes, but also how residents respond to them. It's a research program unlike any other for a major metro area. But it's not the only report Dr. Klineberg and his associates at Rice compile. This hour, we'll offer a sort of appetizer to the Area Survey, as we talk with Stephen Klineberg about Rice's Houston Area Health Survey, which examines the connection between health insurance and perceived wellness, and the role factors ranging from income to age to education to ethnicity to even the neighborhood you live in may have on your health and well-being.
Plus: This weekend, Houston's Brazos Bookstore celebrates its 40th anniversary with a slate of events. As more of us turn to e-books and online booksellers, traditional bricks-and-mortar bookstores have had to adapt. We discuss how indie bookstores in Houston are re-inventing themselves as essentially community centers for readers.
And: As millions of birds fly through Texas as part of their spring migration, they're being watched by Houston's birders. Houston Matters' Maggie Martin goes birding with one such enthusiast to learn more about birdwatching in and around H-Town.


text:
Sherlock Holmes Terror By Night
Sherlock Holmes and Dr. Watson are in pursuit of a famous stolen diamond aboard the bullet-train from London to Edinburgh.
Also available in a set:
Sherlock Holmes (Terror By Night / Dressed to Kill / And the Secret Weapon / Woman in Green) (4-DVD) (DVD-R) for $4.98
Sherlock Holmes in Terror by Night for $19
Sherlock Holmes in Terror by Night for $10.90
Terror By Night for $8.70
Sherlock Holmes - A Talk with Sir Arthur Conan Doyle [Paper-Sleeve] (DVD) $0.49
Based On Characters Created By Sir Arthur Conan Doyle
Run Time: 1 hours
Released: November 19, 2002
English Mono
Starring Dennis Hoey, Nigel Bruce, Basil Rathbone & Alan Mowbray
Performer: Mary Forbes, Renee Godfrey, Geoffrey Steele & Frederick Worlock
Directed by Roy William Neill
Screenwriting by Frank Gruber
Produced by Roy William Neill
Sherlock Holmes (Basil Rathbone) and Dr. Watson (Nigel Bruce) find themselves amidst murder and thievery on a speeding train from London to Edinburgh. The master sleuths are hired by wealthy Lady Margaret Carstairs to guard the precious "The Star of Rhodesia" diamond. On board, the infamous criminal Colonel Sebastian Moran, a master of disguise, may be posing as any one of the train's passengers. When a Carstairs family member is murdered in his compartment, Holmes sets out to find the murderer and save the diamond. The penultimate entry in Universal Sherlock Holmes series, Terror By Night takes place almost entirely on board a train. Suspicious characters and intrigue lie within each coach, and at every turn of this suspenseful thriller.
Master sleuth Sherlock Holmes (Basil Rathbone) is hired by the wealthy widow Lady Margaret (Mary Forbes) and her son Roland Carstairs (Geoffrey Steele) to prevent the theft of an enormous diamond known as the "Star of Rhodesia." Traveling by train from London to Edinburgh, Holmes guards the priceless jewel with the help of Dr. Watson (Nigel Bruce) and Inspector Lestrade (Dennis Hoey). But when the diamond disappears and Roland is found murdered, Holmes must deduce the murderer's identity from among the speeding train's many suspicious passengers, including Dr. Watson's old friend Major Duncan-Bleek (Alan Mowbray). Dripping with atmosphere and claustrophobic suspense, TERROR BY NIGHT is a true classic in the pantheon of Sherlock Holmes mysteries.
Thieves | Detectives | Classic | Mystery | Suspense | Thriller | Vintage | Murder | Jewels | Sleuth | Theatrical Release | Detective | Trains | Mysteries
The Hound of the Baskervilles / Pursuit to Algiers
The Sherlock Holmes Double Feature: The Spider Woman /...
Sherlock Holmes and the Pearl of Death
Sherlock Holmes in Pursuit to Algiers
Sherlock Holmes and the Scarlet Claw (Digitally Restored)
Sherlock Holmes and the Spider Woman (Digitally Restored)
Sherlock Holmes and the Woman in Green
Sherlock Holmes and the Secret Weapon
East Side Kids - Spooks Run Wild - 11" x 17" Poster
Based on 40 ratings.
One of Universal's Best Holmes Mysteries Movie Lover: FilmFlops Critic from Trumbull, CT US -- June, 14, 2004
A solid entry in the Holmesian canon by Universal, combining the best elements of film-making with a fine cast of characters. Although I regret Universal's decision to have Dr. Watson portrayed as a bumbling windbag in the film series, I can't think of any actor who could have pulled it off as well as Nigel Bruce. Bruce adds touches of humor and humanity to the role and, in each of the films, has his dramatic moments. Dennis Hoey is (again) priceless as the gruff police inspector Lestrade who just doesn't get it right, although in this film he does, at last. Set on a train to Scotland, the story allows for excellent character development (mainly of red herrings)and strikes a fine balance between humorous situations (that do not detract from the mystery at hand) and the mysterious, murderous atmosphere that permeates the train. Well-paced fun for all ages.
Great Movie Movie Lover: Chip from Colorado -- February, 6, 2004
I remember seeing this as a young boy and fell in love with Sherlock Holmes. It has always been one of my favorites, I'm so glad that they are starting to put them on dvd. You will love this movie. A little bit of action, a little bit of humor and of course the interplay between Holmes and Watson.
Mystery & Thriller Movies
Horror / Suspense
Sherlock Holmes - Dressed To Kill (DVD)
The Kennel Murder Case (DVD-R)
Mr. Moto's Last Warning (DVD-R)
Mr. Wong - Mr. Wong In Chinatown (DVD-R)
Sherlock Holmes - The Woman In Green (DVD-R)
Sherlock Holmes - Sherlock Holmes and the Secret Weapon (DVD)
Sherlock Holmes - The Triumph of Sherlock Holmes (DVD)
Sherlock Holmes - Murder At The Baskervilles (aka Silver... (DVD-R)
Sherlock Holmes - The Sign of Four (DVD)
Sherlock Holmes - A Study In Scarlet (DVD)


Keep all your Apple devices safe and fully charged with the Kanex GoPower Apple Watch Stand and iPhone Charger.
Keep all your Apple devices safe and fully charged with the Kanex GoPower Apple Watch Stand and iPhone Charger. With a compact design and inductive charging, this stand is perfect for your nightstand or work desk. Your Apple Watch sits on the podium, where you can still see the time and use the touchscreen. It works just like your regular magnetic watch charger, but with way more style. It is also MFi-certified, which is Apple's seal of approval. In the base, there is a USB charging port for your iPhone. While your smartphone is on charge, you can place it on the stand beneath your Apple Watch. This prevents your devices from getting knocked or scratched, and you can always find your phone in the morning rush.


text:
Elva Margariti (ur. 14 czerwca 1980 w Tiranie) – albańska architekt i polityk, od 2019 minister kultury.

Życiorys
W 2008 ukończyła studia z zakresu architektury na uniwersytecie we Florencji. Specjalizację w zakresie bio-architektury odbyła na uniwersytetach w Tampere i w Szanghaju. Zajmowała się planowaniem miast, a także realizacją projektów architektonicznych we Florencji i w Tiranie. W latach 2009-2010 projekty Elvy Margariti stały się częścią ekspozycji Lo stilo dello Zar, wystawianej w Museo del Tessuto w Prato i w Muzeum Historii Nauki we Florencji.

Politycznie związana z Socjalistyczną Partią Albanii. Od 2015 realizuje współpracę pomiędzy Uniwersytetem Florenckim, a Uniwersytetem Katolickim w Tiranie, zmierzającą do uruchomienia w Albanii studiów magisterskich z zakresu architektury i inżynierii materiałowej. Od 2018 pracowała na stanowisku doradcy rządu albańskiego d.s. rozwoju i integracji obszarów wiejskich. W styczniu 2019 objęła kierownictwo resortu kultury w drugim rządzie Ediego Ramy. W dniach 4-6 lutego 2020 odwiedziła Warszawę biorąc udział w spotkaniu Europejskiej Sieci Pamięć i Solidarność.

W życiu prywatnym jest wdową (mąż Artan Asllani zmarł w styczniu 2021), ma córkę.

Przypisy

Bibliografia

Absolwenci i studenci Uniwersytetu Florenckiego
Albańscy architekci
Albańscy ministrowie kultury
Politycy Socjalistycznej Partii Albanii
Ludzie urodzeni w Tiranie
Urodzeni w 1980


DKNY Stories is a new Eau de Parfum inspired by the energetic New York City. The perfume is described as an Oriental Floral fragrance, having striking contrasts like the city itself. It has a modern feminine edge that inspires new stories every time you wear it. I'm going to review and describe the scent of the DKNY Stories Eau de Parfum in today's post.


text:
Breaking New Ground in Young Scottish Fiction
by IBBY | Sep 7, 2020 | IBBYLink Autumn 2019
back to IBBYLink Autumn 2019
Julie Bertagna
Almost every day right now, someone contacts me on social media to say how young climate activist Greta Thunberg reminds them uncannily of Mara, the teenage heroine of my eco-epic Exodus trilogy (2003; 2007; 2011), set in a futuristic Scotland.
Greta gave me goosebumps the very first time I saw her, a teenager fighting to save her world, as she did indeed seem to be the embodiment of the fictional character I first imagined 20 years ago.
In Exodus, Mara tries to save her people in a drowned world of the future, but her story was inspired by a very real cry for help from a drowning island on the other side of the world.
One drenching wet day I sat in my favourite local cafe, waiting for the Glasgow rain to stop. It was 1999, before climate change was news. A snippet in a newspaper caught my eye. It was an SOS from the other side of the earth. A tiny island nation in the Pacific Ocean, Kiribati, was battling to survive storms and rising seas. The islands are so small they looked like a scatter of stones in the vast blue ocean, thousands of miles from anywhere else. Help us, the islanders cried to the outside world. Our ocean is rising. Save us from being swallowed by the sea.
The rest of the world sipped its coffee and turned the page, barely noticing this tiny story on page 22 of The Independent. I'm still not sure why I did. Maybe if I'd had an umbrella or the rain had eased off sooner, I would have skimmed over it too. But the rain was relentless and my notebook was full of useless scribbles about the story I was supposed to be writing. I was trapped in the cafe, looking for an escape from a story going nowhere.
So I paused, and the horror of this faraway SOS took hold.
As I walked home in my city in a rainy island nation at the opposite side of the globe, I couldn't stop thinking about the faraway islanders and their cry for help.
I began a quest to find out more about the plight of Kiribati, which was British until it gained Independence in 1979. I researched climate change and global warming and rising seas. Back then, the internet was in its infancy and there was barely any climate news, but I sourced the latest scientific papers and was aghast at what I found. I walked around Glasgow, a city of hills and valleys, imagining it struck by great floods.
I found a photo of a Kiribati child staring out at a savage sea, her village sandbagged, the sea almost at her door, an image so haunting I couldn't get it out of my head. I'd grown up in Ayrshire and Glasgow, on the (often) wild and wet west coast of Scotland. I thought of that coastline, the islands of Scotland, battling ferocious seas and storms, and tried to imagine what a future of superstorms and sea surges might do to them. What if climate change raced out of control? It seemed such an unlikely prospect, back in 1999, and yet . . . my imagination started to spin and I was gripped by an unnerving thought.
What would all our futures be if that were to happen? What if the disaster unfolding in Kiribati was a foreshadowing of a much greater global one?
All of a sudden a girl seemed to leap out of that future and into my head. She began to tell me the story of her battle to survive in a flooded world. I didn't so much write it down, I felt I was channelling her! Her story wasn't about an island like Kiribati at the far side of the world, about lives I felt I had no right to pretend I knew about. This was a voice from somewhere I knew well. A storm-wrecked Scottish island – but at the beginning of the next century. I wanted to turn the story on its head and create a vision that would shake the readers, wake them up to a secret that was being kept about our future.
In 2099, Mara's island, Wing, in the North Atlantic, is drowning after a century of storm. Across the ocean, a boy called Fox lives in a hi-tech city that soars into the sky, way above the flooded ruins of what once was my own city, Glasgow. This teenage boy and a girl crash together like flotsam and jetsam in a tempest, through a miracle of technology, and they change the whole world.
At the top of a giant tower is the corrupt old ruler of this brave new world, Caledon, who has built a Great Wall around his sky city to keep out desperate refugees like Mara. My anti-hero Caledon pre-Trumped Trump, whom I'd never heard of back then.
As I wrote Exodus, the world was changing fast around me. Climate disasters began to wreak havoc. Hurricanes, wildfires, drought, ice melts at the poles, faster and vaster than expected. English friends living on Lesvos whom I'd met years ago on holiday, on an island that felt like a Greek paradise, have found themselves at the cruel heart of the refugee crisis as thousands upon thousands of child and adult refugees land, literally, on their seafront doorstep. Some wash up drowned after perilous journeys to escape war, famine, drought and all kinds of danger in their own lands – situations often intensified by climate change, as in Syria. Their perilous journeys are mirrored in Mara's futuristic plight in Exodus.
Most of my stories have Scottish settings because I've never forgotten the shock of delight as a ten year old on discovering that the book I'd borrowed from my local library in the suburbs of Glasgow (The High House (1967) by Honor Arundel) was set in Edinburgh. I'd never known such a thing before! Stories always happened somewhere else. But even in The High House, Emma, the young protagonist, is from elsewhere and she experiences Scotland as an outsider. There is a wonderfully rich vein of children's historical fiction set in Scotland but I sought to create a range of contemporary Scottish teen characters and stories; in Mara I particularly wanted a strong, believable, complex modern heroine – because at that point in time, there were barely any – in a story that pushed the boundaries of what young fiction could be.
As a young teacher, I had been hugely inspired by Theresa Breslin's books when I was seeking out contemporary Scottish children's fiction to engage my class of 11-year-old (mostly) reluctant readers in a challenging area of Glasgow, who just didn't see themselves or their lives reflected in the books in the school library. But Theresa Breslin's Simon's Challenge (1988) on schools TV (starring a young Joe McFadden) reeled them in, with its themes of redundancy, money worries and family breakdown. We watched the TV series then read the book and the children found lots to engage with, but when I cast around for more contemporary Scottish children's stories, I found them very thin on the ground.
Eileen Dunlop's atmospheric The House on the Hill (1987) was a favourite, and we created a fantastic class project based on Mollie Hunter's The Walking Stones (1976), an unusual mix of seers, standing stones and hydroelectric power which beautifully merges myth, magic and modern Scotland and opened my mind to the possibilities for exploring a new kind of Scottish children's fiction. Joan Lingard's ground-breaking stories set in Belfast and Glasgow were just too challenging for my young class, sadly.
I'd always wanted to write and had half-finished adult stories under my bed, but all of a sudden I saw that there was a great gap to be filled in contemporary Scottish stories for young readers. So I set myself a challenge. In my lunch hours, after I'd marked and prepped for the afternoon, I'd stare out of the classroom window at the enormous tower blocks surrounding the school and dreamed up my first novel, The Spark Gap (1996)), a story of runaway Glasgow teenagers with a mystical Highland episode, inspired by the world right outside my classroom window, influenced by all of the above writers, and many others such as George Mackay Brown.
By the time I was writing my second novel, Soundtrack (1999), (which also combines that mix of otherworldliness, myth and modern Scotland I'd been percolating) contemporary teen Scottish fiction was really hitting its stride with Cathy MacPhail's Run, Zan, Run (1994) and Alison Prince's The Sherwood Hero (1995), alongside Theresa Breslin's Carnegie Medal winning Whispers in the Graveyard (2007), to be followed a few years later by Cathy Forde, Linda Strachan and others – and recently by new talent Victoria Williamson's topical and powerful stories.
Now Exodus is on its fifteenth reprint, published in many languages around the world, and there's a special 15th anniversary edition, this story of how young people can change their world, even when the future seems sunk, has a whole new generation of readers.
It's truly frightening that the story has far more resonance now than when it was first published – thanks to Greta Thunberg, Extinction Rebellion and the now-critical climate crisis. But the ultimate message of the Exodus trilogy and its young characters is that the future is not set in stone – it's in your hands. Anything is possible, as Greta Thunberg is proving to us all.
Primary works
Bertagna, Julie (2002) Exodus. London: Picador.
Bertagna, Julie (2007) Zenith. London: Young Picador.
Bertagna, Julie (2011) Aurora. London: Macmillan Children's Books.
Secondary works
Arundel, Honor (illus. Eileen Armitage) (1967) The High House. London: Hamilton.
Bertagna, Julie (illus. William Goldsmith) (2014) John Muir: Earth – Planet Universe. Edinburgh: Scottish Book Trust. Free pdf at https://www.scottishbooktrust.com/learning-and-resources/john-muir-earth-planet-universe. [Accessed 10/12/2019.] Later published in the USA 2019 as Wildheart: The Daring Adventures of John Muir. Berkeley, CA: Yosemite Conservancy.
Bertagna, Julie (illus. Guy Parker-Rees) (1998) The Ice Cream Machine. London: Mammoth.
Bertagna, Julie (1996) The Spark Gap. London: Mammoth.
Bertagna, Julie (1999) Soundtrack. London: Mammoth.
Breslin, Theresa (2007) Whispers in the Graveyard. London: Egmont. Breslin, Theresa (1988) Simon's Challenge. London: Blackie.
Dunlop, Eileen (1987) The House on the Hill. Oxford University Press.
Hunter, Mollie (illus. Gareth Floyd) (1976) The Walking Stones. London: Target Books.
MacPhail , Catherine (1994) Run, Zan, Run. London: Blackie Children's Books.
Prince, Alison (1995) The Sherwood Hero. London: Macmillan Children's Books.
Ann Lazim is the Literature and Library Development Manager at the Centre for Literacy in Primary Education, London, www.clpe.org.uk, which holds a large collection of traditional tales retold for children. She is a member of the IBBY UK committee, a previous Chair and was co-director of the 2012 IBBY International Congress.
Registered Office: 71 Addiscombe Court Road, Croydon, CR0 6TT | The IBBY UK Section is a Company Limited by Guarantee: Company number 7892957; Registered Charity number 1145999. | Our Privacy Policy | Website designed and developed by Osomi