text:
<?php
namespace PhpResque\Resque;

// Find and initialize Composer
use MonologInit\MonologInit;
use PhpResque\Resque;
use PhpResque\Resque\Job\DirtyExitException;
use PhpResque\Resque\Job\Status;
use RuntimeException;

$files = array(
    __DIR__ . '/../../vendor/autoload.php',
    __DIR__ . '/../../../autoload.php',
    __DIR__ . '/../../../../autoload.php',
    __DIR__ . '/../vendor/autoload.php'
);

foreach ($files as $file) {
    if (file_exists($file)) {
        require_once $file;
        break;
    }
}

if (!class_exists('Composer\Autoload\ClassLoader', false)) {
    die(
        'You need to set up the project dependencies using the following commands:' . PHP_EOL .
        'curl -s http://getcomposer.org/installer | php' . PHP_EOL .
        'php composer.phar install' . PHP_EOL
    );
}

/**
 * Resque worker that handles checking queues for jobs, fetching them
 * off the queues, running them and handling the result.
 *
 * @package     Resque/Worker
 * @author      Chris Boulton <chris@bigcommerce.com>
 * @license     http://www.opensource.org/licenses/mit-license.php
 */
class Worker
{
    const LOG_NONE = 0;
    const LOG_NORMAL = 1;
    const LOG_VERBOSE = 2;

    const LOG_TYPE_DEBUG = 100;
    const LOG_TYPE_INFO = 200;
    const LOG_TYPE_WARNING = 300;
    const LOG_TYPE_ERROR = 400;
    const LOG_TYPE_CRITICAL = 500;
    const LOG_TYPE_ALERT = 550;

    public $logOutput = STDOUT;

    /**
     * @var int Current log level of this worker.
     */
    public $logLevel = self::LOG_NONE;

    /**
     * @var array Array of all associated queues for this worker.
     */
    protected $queues = array();

    /**
     * @var string The hostname of this worker.
     */
    protected $hostname;

    /**
     * @var boolean True if on the next iteration, the worker should shutdown.
     */
    protected $shutdown = false;

    /**
     * @var boolean True if this worker is paused.
     */
    protected $paused = false;

    /**
     * @var string String identifying this worker.
     */
    protected $id;

    /**
     * @var Job Current job, if any, being processed by this worker.
     *
     */
    protected $currentJob = null;

    /**
     * @var int Process ID of child worker processes.
     */
    protected $child = null;

    /**
     * @var \Monolog\Logger
     */
    protected $logger = null;

    /**
     * Return all workers known to Resque as instantiated instances.
     * @return array
     */
    public static function all()
    {
        $workers = Resque::redis()->smembers('workers');
        if (!is_array($workers)) {
            $workers = array();
        }

        $instances = array();
        foreach ($workers as $workerId) {
            $instances[] = self::find($workerId);
        }
        return $instances;
    }

    /**
     * Given a worker ID, check if it is registered/valid.
     *
     * @param string $workerId ID of the worker.
     * @return boolean True if the worker exists, false if not.
     */
    public static function exists($workerId)
    {
        return (bool)Resque::redis()->sismember('workers', $workerId);
    }

    /**
     * Given a worker ID, find it and return an instantiated worker class for it.
     *
     * @param string $workerId The ID of the worker.
     * @return Worker Instance of the worker. False if the worker does not exist.
     */
    public static function find($workerId)
    {
        if (!self::exists($workerId) || false === strpos($workerId, ":")) {
            return false;
        }

        list(, , $queues) = explode(':', $workerId, 3);
        $queues = explode(',', $queues);
        $worker = new self($queues);
        $worker->setId($workerId);
        $worker->logger = $worker->getLogger($workerId);
        return $worker;
    }

    /**
     * Set the ID of this worker to a given ID string.
     *
     * @param string $workerId ID for the worker.
     */
    public function setId($workerId)
    {
        $this->id = $workerId;
    }

    /**
     * Instantiate a new worker, given a list of queues that it should be working
     * on. The list of queues should be supplied in the priority that they should
     * be checked for jobs (first come, first served)
     *
     * Passing a single '*' allows the worker to work on all queues in alphabetical
     * order. You can easily add new queues dynamically and have them worked on using
     * this method.
     *
     * @param string|array $queues String with a single queue name, array with multiple.
     */
    public function __construct($queues)
    {
        if (!is_array($queues)) {
            $queues = array($queues);
        }

        $this->queues = $queues;
        if (function_exists('gethostname')) {
            $hostname = gethostname();
        } else {
            $hostname = php_uname('n');
        }
        $this->hostname = $hostname;
        $this->id = $this->hostname . ':'.getmypid() . ':' . implode(',', $this->queues);
    }

    /**
     * The primary loop for a worker which when called on an instance starts
     * the worker's life cycle.
     *
     * Queues are checked every $interval (seconds) for new jobs.
     *
     * @param int $interval How often to check for new jobs across the queues.
     */
    public function work($interval = 5)
    {
        $this->updateProcLine('Starting');
        $this->startup();

        while (true) {
            if ($this->shutdown) {
                break;
            }

            // Attempt to find and reserve a job
            $job = false;
            if (!$this->paused) {
                try {
                    $job = $this->reserve();
                }
                catch (\RedisException $e) {
                    $this->log(array('message' => 'Redis exception caught: ' . $e->getMessage(), 'data' => array('type' => 'fail', 'log' => $e->getMessage(), 'time' => time())), self::LOG_TYPE_ALERT);
                }
            }

            if (!$job) {
                // For an interval of 0, break now - helps with unit testing etc
                if ($interval == 0) {
                    break;
                }
                // If no job was found, we sleep for $interval before continuing and checking again
                $this->log(array('message' => 'Sleeping for ' . $interval, 'data' => array('type' => 'sleep', 'second' => $interval)), self::LOG_TYPE_DEBUG);
                if ($this->paused) {
                    $this->updateProcLine('Paused');
                } else {
                    $this->updateProcLine('Waiting for ' . implode(',', $this->queues));
                }
                usleep($interval * 1000000);
                continue;
            }

            $this->log(array('message' => 'got ' . $job, 'data' => array('type' => 'got', 'args' => $job)), self::LOG_TYPE_INFO);
            Event::trigger('beforeFork', $job);
            $this->workingOn($job);

            $workerName = $this->hostname . ':'.getmypid();

            $this->child = $this->fork();

            // Forked and we're the child. Run the job.
            if ($this->child === 0 || $this->child === false) {
                $status = 'Processing ID:' . $job->payload['id'] .  ' in ' . $job->queue;
                $this->updateProcLine($status);
                $this->log(array('message' => $status, 'data' => array('type' => 'process', 'worker' => $workerName, 'job_id' => $job->payload['id'])), self::LOG_TYPE_INFO);
                $this->perform($job);
                if ($this->child === 0) {
                    exit(0);
                }
            }

            if ($this->child > 0) {
                // Parent process, sit and wait
                $status = 'Forked ' . $this->child . ' for ID:' . $job->payload['id'];
                $this->updateProcLine($status);
                $this->log(array('message' => $status, 'data' => array('type' => 'fork', 'worker' => $workerName, 'job_id' => $job->payload['id'])), self::LOG_TYPE_DEBUG);

                // Wait until the child process finishes before continuing
                pcntl_wait($status);
                $exitStatus = pcntl_wexitstatus($status);
                if ($exitStatus !== 0) {
                    $job->fail(new DirtyExitException('Job exited with exit code ' . $exitStatus));
                }
            }

            $this->child = null;
            $this->doneWorking();
        }

        $this->unregisterWorker();
    }

    /**
     * Process a single job.
     *
     * @param Job $job The job to be processed.
     */
    public function perform(Job $job)
    {
        $startTime = microtime(true);
        try {
            Event::trigger('afterFork', $job);
            $job->perform();
            $this->log(array('message' => 'done ID:' . $job->payload['id'], 'data' => array('type' => 'done', 'job_id' => $job->payload['id'], 'time' => round(microtime(true) - $startTime, 3) * 1000)), self::LOG_TYPE_INFO);
        } catch (\Exception $e) {

            $this->log(array('message' => $job . ' failed: ' . $e->getMessage(), 'data' => array('type' => 'fail', 'log' => $e->getMessage(), 'job_id' => $job->payload['id'], 'time' => round(microtime(true) - $startTime, 3) * 1000)), self::LOG_TYPE_ERROR);
            $job->fail($e);
            return;
        }

        $job->updateStatus(Status::STATUS_COMPLETE);
    }

    /**
     * Attempt to find a job from the top of one of the queues for this worker.
     *
     * @return Job|boolean Instance of Job if a job is found, false if not.
     */
    public function reserve()
    {
        $queues = $this->queues();
        if (!is_array($queues)) {
            return false;
        }
        foreach ($queues as $queue) {
            $this->log(array('message' => 'Checking ' . $queue, 'data' => array('type' => 'check', 'queue' => $queue)), self::LOG_TYPE_DEBUG);
            $job = Job::reserve($queue);
            if ($job) {
                $this->log(array('message' => 'Found job on ' . $queue, 'data' => array('type' => 'found', 'queue' => $queue)), self::LOG_TYPE_DEBUG);
                return $job;
            }
        }

        return false;
    }

    /**
     * Return an array containing all of the queues that this worker should use
     * when searching for jobs.
     *
     * If * is found in the list of queues, every queue will be searched in
     * alphabetic order. (@see $fetch)
     *
     * @param boolean $fetch If true, and the queue is set to *, will fetch
     * all queue names from redis.
     * @return array Array of associated queues.
     */
    public function queues($fetch = true)
    {
        if (!in_array('*', $this->queues) || $fetch == false) {
            return $this->queues;
        }

        $queues = Resque::queues();
        sort($queues);
        return $queues;
    }

    /**
     * Attempt to fork a child process from the parent to run a job in.
     *
     * Return values are those of pcntl_fork().
     *
     * @return int -1 if the fork failed, 0 for the forked child, the PID of the child for the parent.
     */
    protected function fork()
    {
        if (!function_exists('pcntl_fork')) {
            return false;
        }

        $pid = pcntl_fork();
        if ($pid === -1) {
            throw new RuntimeException('Unable to fork child worker.');
        }

        return $pid;
    }

    /**
     * Perform necessary actions to start a worker.
     */
    protected function startup()
    {
        $this->log(array('message' => 'Starting worker ' . $this, 'data' => array('type' => 'start', 'worker' => (string) $this)), self::LOG_TYPE_INFO);

        $this->registerSigHandlers();
        $this->pruneDeadWorkers();
        Event::trigger('beforeFirstFork', $this);
        $this->registerWorker();
    }

    /**
     * On supported systems (with the PECL proctitle module installed), update
     * the name of the currently running process to indicate the current state
     * of a worker.
     *
     * @param string $status The updated process title.
     */
    protected function updateProcLine($status)
    {
        if (function_exists('setproctitle')) {
            setproctitle('resque-' . Resque::VERSION . ': ' . $status);
        }
    }

    /**
     * Register signal handlers that a worker should respond to.
     *
     * TERM: Shutdown immediately and stop processing jobs.
     * INT: Shutdown immediately and stop processing jobs.
     * QUIT: Shutdown after the current job finishes processing.
     * USR1: Kill the forked child immediately and continue processing jobs.
     */
    protected function registerSigHandlers()
    {
        if (!function_exists('pcntl_signal')) {
            $this->log(array('message' => 'Signals handling is unsupported', 'data' => array('type' => 'signal')), self::LOG_TYPE_WARNING);
            return;
        }

        declare(ticks = 1);
        pcntl_signal(SIGTERM, array($this, 'shutDownNow'));
        pcntl_signal(SIGINT, array($this, 'shutDownNow'));
        pcntl_signal(SIGQUIT, array($this, 'shutdown'));
        pcntl_signal(SIGUSR1, array($this, 'killChild'));
        pcntl_signal(SIGUSR2, array($this, 'pauseProcessing'));
        pcntl_signal(SIGCONT, array($this, 'unPauseProcessing'));
        pcntl_signal(SIGPIPE, array($this, 'reestablishRedisConnection'));
        $this->log(array('message' => 'Registered signals', 'data' => array('type' => 'signal')), self::LOG_TYPE_DEBUG);
    }

    /**
     * Signal handler callback for USR2, pauses processing of new jobs.
     */
    public function pauseProcessing()
    {
        $this->log(array('message' => 'USR2 received; pausing job processing', 'data' => array('type' => 'pause')), self::LOG_TYPE_INFO);
        $this->paused = true;
    }

    /**
     * Signal handler callback for CONT, resumes worker allowing it to pick
     * up new jobs.
     */
    public function unPauseProcessing()
    {
        $this->log(array('message' => 'CONT received; resuming job processing', 'data' => array('type' => 'resume')), self::LOG_TYPE_INFO);
        $this->paused = false;
    }

    /**
     * Signal handler for SIGPIPE, in the event the redis connection has gone away.
     * Attempts to reconnect to redis, or raises an Exception.
     */
    public function reestablishRedisConnection()
    {
        $this->log(array('message' => 'SIGPIPE received; attempting to reconnect', 'data' => array('type' => 'reconnect')), self::LOG_TYPE_INFO);
        Resque::redis()->establishConnection();
    }

    /**
     * Schedule a worker for shutdown. Will finish processing the current job
     * and when the timeout interval is reached, the worker will shut down.
     */
    public function shutdown()
    {
        $this->shutdown = true;
        $this->log(array('message' => 'Exiting...', 'data' => array('type' => 'shutdown')), self::LOG_TYPE_INFO);
    }

    /**
     * Force an immediate shutdown of the worker, killing any child jobs
     * currently running.
     */
    public function shutdownNow()
    {
        $this->shutdown();
        $this->killChild();
    }

    /**
     * Kill a forked child job immediately. The job it is processing will not
     * be completed.
     */
    public function killChild()
    {
        if (!$this->child) {
            $this->log(array('message' => 'No child to kill.', 'data' => array('type' => 'kill', 'child' => null)), self::LOG_TYPE_DEBUG);
            return;
        }

        $this->log(array('message' => 'Killing child at ' . $this->child, 'data' => array('type' => 'kill', 'child' => $this->child)), self::LOG_TYPE_DEBUG);
        if (exec('ps -o pid,state -p ' . $this->child, $output, $returnCode) && $returnCode != 1) {
            $this->log(array('message' => 'Killing child at ' . $this->child, 'data' => array('type' => 'kill', 'child' => $this->child)), self::LOG_TYPE_DEBUG);
            posix_kill($this->child, SIGKILL);
            $this->child = null;
        } else {
            $this->log(array('message' => 'Child ' . $this->child . ' not found, restarting.', 'data' => array('type' => 'kill', 'child' => $this->child)), self::LOG_TYPE_ERROR);
            $this->shutdown();
        }
    }

    /**
     * Look for any workers which should be running on this server and if
     * they're not, remove them from Redis.
     *
     * This is a form of garbage collection to handle cases where the
     * server may have been killed and the Resque workers did not die gracefully
     * and therefore leave state information in Redis.
     */
    public function pruneDeadWorkers()
    {
        $workerPids = $this->workerPids();
        $workers = self::all();
        foreach ($workers as $worker) {
            if (is_object($worker)) {
                list($host, $pid, ) = explode(':', (string)$worker, 3);
                if ($host != $this->hostname || in_array($pid, $workerPids) || $pid == getmypid()) {
                    continue;
                }
                $this->log(array('message' => 'Pruning dead worker: ' . (string)$worker, 'data' => array('type' => 'prune')), self::LOG_TYPE_DEBUG);
                $worker->unregisterWorker();
            }
        }
    }

    /**
     * Return an array of process IDs for all of the Resque workers currently
     * running on this machine.
     *
     * @return array Array of Resque worker process IDs.
     */
    public function workerPids()
    {
        $pids = array();
        exec('ps -A -o pid,comm | grep [r]esque', $cmdOutput);
        foreach ($cmdOutput as $line) {
            list($pids[]) = explode(' ', trim($line), 2);
        }
        return $pids;
    }

    /**
     * Register this worker in Redis.
     */
    public function registerWorker()
    {
        Resque::redis()->sadd('workers', (string)$this);
        Resque::redis()->set('worker:' . (string)$this . ':started', strftime('%a %b %d %H:%M:%S %Z %Y'));
    }

    /**
     * Unregister this worker in Redis. (shutdown etc)
     */
    public function unregisterWorker()
    {
        if (is_object($this->currentJob)) {
            $this->currentJob->fail(new DirtyExitException);
        }

        $id = (string)$this;
        Resque::redis()->srem('workers', $id);
        Resque::redis()->del('worker:' . $id);
        Resque::redis()->del('worker:' . $id . ':started');
        Stat::clear('processed:' . $id);
        Stat::clear('failed:' . $id);
        Resque::redis()->hdel('workerLogger', $id);
    }

    /**
     * Tell Redis which job we're currently working on.
     *
     * @param Job $job instance containing the job we're working on.
     */
    public function workingOn(Job $job)
    {
        $job->worker = $this;
        $this->currentJob = $job;
        $job->updateStatus(Status::STATUS_RUNNING);
        $data = json_encode(
            array(
                'queue' => $job->queue,
                'run_at' => strftime('%a %b %d %H:%M:%S %Z %Y'),
                'payload' => $job->payload
            )
        );
        Resque::redis()->set('worker:' . $job->worker, $data);
    }

    /**
     * Notify Redis that we've finished working on a job, clearing the working
     * state and incrementing the job stats.
     */
    public function doneWorking()
    {
        $this->currentJob = null;
        Stat::incr('processed');
        Stat::incr('processed:' . (string)$this);
        Resque::redis()->del('worker:' . (string)$this);
    }

    /**
     * Generate a string representation of this worker.
     *
     * @return string String identifier for this worker instance.
     */
    public function __toString()
    {
        return $this->id;
    }

    /**
     * Output a given log message to STDOUT.
     *
     * @param string $message Message to output.
     * @param int $code
     * @return bool True if the message is logged
     */
    public function log($message, $code = self::LOG_TYPE_INFO)
    {
        if ($this->logLevel === self::LOG_NONE) {
            return false;
        }

        /*if ($this->logger === null) {
            if ($this->logLevel === self::LOG_NORMAL && $code !== self::LOG_TYPE_DEBUG) {
                fwrite($this->logOutput, "*** " . $message['message'] . "\n");
            } else if ($this->logLevel === self::LOG_VERBOSE) {
                fwrite($this->logOutput, "** [" . strftime('%T %Y-%m-%d') . "] " . $message['message'] . "\n");
            } else {
                return false;
            }
            return true;
        } else {*/
        $extra = array();

        if (is_array($message)) {
            $extra = $message['data'];
            $message = $message['message'];
        }

        if (!isset($extra['worker'])) {
            if ($this->child > 0) {
                $extra['worker'] = $this->hostname . ':' . getmypid();
            } else {
                list($host, $pid, ) = explode(':', (string) $this, 3);
                $extra['worker'] = $host . ':' . $pid;
            }
        }

        if (($this->logLevel === self::LOG_NORMAL || $this->logLevel === self::LOG_VERBOSE) && $code !== self::LOG_TYPE_DEBUG) {

            if ($this->logger === null) {
                fwrite($this->logOutput, "[" . date('c') . "] " . $message . "\n");
            } else {
                switch ($code) {
                    case self::LOG_TYPE_INFO:
                        $this->logger->addInfo($message, $extra);
                        break;
                    case self::LOG_TYPE_WARNING:
                        $this->logger->addWarning($message, $extra);
                        break;
                    case self::LOG_TYPE_ERROR:
                        $this->logger->addError($message, $extra);
                        break;
                    case self::LOG_TYPE_CRITICAL:
                        $this->logger->addCritical($message, $extra);
                        break;
                    case self::LOG_TYPE_ALERT:
                        $this->logger->addAlert($message, $extra);
                }
            }

        } else if ($code === self::LOG_TYPE_DEBUG && $this->logLevel === self::LOG_VERBOSE) {
            if ($this->logger === null) {
                fwrite($this->logOutput, "[" . date('c') . "] " . $message . "\n");
            } else {
                $this->logger->addDebug($message, $extra);
            }
        } else {
            return false;
        }

         return true;
        //}
    }

    /**
     * @param MonologInit $logger
     */
    public function registerLogger($logger = null)
    {
        $this->logger = $logger->getInstance();
        Resque::redis()->hset('workerLogger', (string)$this, json_encode(array($logger->handler, $logger->target)));
    }

    public function getLogger($workerId)
    {
        $settings = json_decode(Resque::redis()->hget('workerLogger', (string)$workerId));
        $logger = new MonologInit($settings[0], $settings[1]);
        return $logger->getInstance();
    }

    /**
     * Return an object describing the job this worker is currently working on.
     *
     * @return object Object with details of current job.
     */
    public function job()
    {
        $job = Resque::redis()->get('worker:' . $this);
        if (!$job) {
            return array();
        } else {
            return json_decode($job, true);
        }
    }

    /**
     * Get a statistic belonging to this worker.
     *
     * @param string $stat Statistic to fetch.
     * @return int Statistic value.
     */
    public function getStat($stat)
    {
        return Stat::get($stat . ':' . $this);
    }
}


text:
25 more general knowledge pub quiz questions to test your friends and family
Test your own knowledge and put your mates and relatives to the test with these brainteasers
Stephen D'AlbiacContent Editor
Can you crack our latest general knowledge quiz? (Image: Getty Images)
GET THE BIGGEST STORIES FROM ACROSS SOMERSET STRAIGHT TO YOUR INBOX
Lockdown has brought us many things, and quizzes are chief among them.
Whether it be with family, friends, or just something you like to do yourself to pass the time, many of us have resorted to testing our general knowledge as a form of entertainment to pass the time during the pandemic.
The beauty of the quiz is that it can be done in pretty much any environment, from gathering with your family in the living room to interacting with people from all over the world using video apps such as Zoom.
We have brought you two general knowledge quizzes in recent weeks, which have been enjoyed more than 30,000 times.
And with the weekend now upon us, we are giving you another chance to test our knowledge and intellect.
Looking for today's top stories in one place? Sign up for our newsletter here.
Whether you are looking to entertain yourself for a few minutes, put some of your mates to the test or you have been tasked with setting a quiz for your family and are looking for inspiration, here are 25 more general knowledge questions to keep you amused.
And if you want to try out our previous two quizzes, scroll down to the gap between the questions and answers.
1) Dulles International Airport serves which major US city?
2) Which former England international footballer is now best known as one of the presenters on the BBC daytime show Homes Under The Hammer?
3) Which actress plays Penny in the hit US sitcom The Big Bang Theory?
4) What nationality is the Formula One driver Max Verstappen?
5) Which English singer has the middle names Laurie and Blue?
6) My Big Fat Greek Wedding is set in which American city?
7) Ayers Rock is known by what other Aboriginal name?
8) Which river flows through the city of Nottingham?
9) Shaun of the Dead, Hot Fuzz and which other film make up the Three Flavours Cornetto Trilogy?
10) David Baddiel and Frank Skinner teamed up with which band to create the now iconic football song Three Lions ahead of the 1996 European Championships?
11) Which famous boxer could "float like a butterfly" and "sting like a bee"?
12) Which popular car manufacturer's name translates into English as "The People's Wagon"?
13) In Hitchhiker's Guide To The Galaxy, which day of the week could Arthur Dent never get the hang of?
14) Cheryl Cole, Kimberley Walsh, Nadine Coyle, Sarah Harding and which other singer make up the pop group Girls Aloud?
15) The Spanish city of Ceuta is situated on which continent?
16) What is the nickname of the character played by Morgan Freeman in Shawshank Redemption?
17) In which English city would you find the Headingley cricket ground?
18) What is Britain known as in the George Orwell novel 1984?
19) What type of pastry are profiteroles made from?
20) What is the only venomous snake found in the UK?
21) The cities of Brisbane, Gold Coast and Cairns are in which Australian state?
22) Taphophobia is the irrational fear of what?
23) Who is the youngest ever winner of the Nobel Prize for Literature?
24) Which is the only city to have hosted the Summer Olympic Games on three occasions?
25) Who was the first ever winner of The X Factor in 2004?
33 general knowledge pub quiz questions to test your family and friends
27 more general knowledge pub quiz questions to test your family and friends
1) Washington D.C.
2) Dion Dublin
3) Kaley Cuoco
4) Dutch
5) Adele
6) Chicago
7) Uluru
8) River Trent
9) The World's End
10) Lightning Seeds
11) Muhammad Ali
12) Volkswagen
13) Thursdays
14) Nicola Roberts
15) Africa
16) Red
17) Leeds
18) Airstrip One
19) Choux pastry
20) Adder
21) Queensland
22) Being buried alive
23) Rudyard Kipling
24) London
25) Steve Brookstein
How did you get on? Let us know in the comments section below.
Storm Christoph: Met Office weather warnings as 'danger to life' storm hits UK - live updates
Local NewsThe Met Office has issued a number of warnings for rain and snow across the UK
Meet the Bridgwater residents benefiting from the town's newest modular homes
Bridgwater41 modular properties form part of The Parade development in the town
The military mum of four donating care packages to Yeovil families
YeovilShe assembled nine parcels in the first week and a half of the initiative
Yeovil Hospital cancels a number of planned procedures to cope with 'acutely unwell' patients
NHSThe hospital's critical care bed occupancy was nine out of ten in the week ending January 10

redpajama_set_name: RedPajamaCommonCrawl


One of the most annoying feature, in my opinion, added to the Node Package Manager (NPM) is the automatically generated package-lock.json file, which is used to "describes the exact tree that was generated, such that subsequent installs are able to generate identical trees, regardless of intermediate dependency updates".
Ironically enough, the package-lock.json has created more annoyance within the team than anything else.
The issue is that when working in a team, with multiple different machines, and potentially different setups such as different Node and NPM versions, the generated package-lock.json can differ from machine to machine, triggering the source control system to mark the file as having been modified, even if the developer merely installed NPM packages via the npm install command.
What happened on two of the machines I work with was that one machine was using SHA-1, while the other was using SHA-512, despite the fact both machines were running the same versions of Node and NPM.
As you can imagine, this is an annoying problem to have. So here's the solution.
Ensure all team members use the same Node and NPM versions.
Revert any changes made to the package-lock.json file.
Run npm cache clean --force in terminal.
If all went as expected, you should not see any change made to the package-lock.json file after package installation completes.
I hope this helps anyone else who ran into this problem.


text:
Q: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: setValue:forUndefinedKey:] terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MyMapViewController 0xa9446a0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key destinationAddress.'
First throw call stack:
(0xa8d012 0x1b57e7e 0xb15fb1 0xd76711 0xcf7ec8 0xcf79b7 0xd22428 0x12c30cc 0x1b6b663 0xa8845a 0x12c1bcf 0x1186e37 0x1187418 0x1187648 0x1187882 0x1193235 0x13923d2 0x11904f3 0x1190777 0xaf2833f 0x11907b7 0x2d8d 0x1b6b705 0x10a9920 0x10a98b8 0x116a671 0x116abcf 0x1169d38 0x10d933f 0x10d9552 0x10b73aa 0x10a8cf8 0x29f5df9 0x29f5ad0 0xa02bf5 0xa02962 0xa33bb6 0xa32f44 0xa32e1b 0x29f47e3 0x29f4668 0x10a665c 0x233d 0x2265) libc++abi.dylib: terminate called throwing an exception

A: Check your .xib for the outlet destinationAddress and make sure it is linked correctly

redpajama_set_name: RedPajamaStackExchange


text:
Ranking The Top 10 Running Backs In College Football For 2017
By Brian Rauf May 14, 2017
The 2016 college football season was loaded with running backs, and while stars like Leonard Fournette, Dalvin Cook and Christian McCaffery are now in the NFL, there are still many top running backs that will still be in school in 2017. Here are the top 10 running backs in college football going into this season:
10) L.J. Scott, Michigan State Spartans
Michigan State had a downright awful season in 2016, but Scott was a bright spot, picking up 994 yards and six touchdowns on 184 carries. Scott is definitely not the fastest guy in the world, yet his size (6-foot-1, 230 lbs.) and excellent vision allow him to be effective.
9) Myles Gaskin, Washington Huskies
Often overshadowed by Jake Browning and Washington's passing attack, Myles Gaskin put forth his second straight season with at least 1,300 rushing yards. He's another smaller back at 5-foot-10 and 195 lbs., but that doesn't keep him from responding to a heavy workload.
8) Damien Harris, Alabama Crimson Tide
The first of two Alabama running backs on this list, Harris actually led the Tide in rushing (1,040 yards) as a freshman. Furthermore, he averaged an eye-popping 7.2 yards per carry, demonstrating the ability to break a big play every time he touched the football. Harris will likely see a diminished role while splitting carries with Bo Scarbrough (more on him in a minute), Joshua Jacobs and incoming freshman Najee Harris (who nearly made the list himself).
7) Sony Michel, Georgia Bulldogs
Michel decided to forgo the NFL Draft and return to school, and even though he largely plays second fiddle to Nick Chubb in UGA's backfield, he's one of the best all-purpose backs in the country. He's another guy who has the speed to outrun a defense, but also has the power to run effectively between the tackles.
6) Ronald Jones II, USC Trojans
After a slow start to the season, Jones exploded as USC's lead back, picking up 797 yards and 10 touchdowns over the last six games of the season. A true speed back, Jones routinely makes defenders miss in the open field and rarely loses a foot race.
5) Royce Freeman, Oregon Ducks
Freeman surprisingly passed on NFL Draft, and Oregon couldn't be more thrilled. Despite dealing with injuries last season, Freeman got 945 yards and nine touchdowns on 168 carries. In his first two seasons in Eugene, Freeman racked up a combined for 3,201 rushing yards and 35 touchdowns. Now healthy, expect another big season from Freeman.
4) Bo Scarbrough, Alabama Crimson Tide
Alabama may have very well won the national championship if Scarbrough didn't break his leg, and his late-season surge has him in position to be the leader of that running back rotation we mentioned before. A powerful runner at 6-foot-2 and 230 lbs., he is great in short-yardage situations - but also broke some very long runs this season.
3) Nick Chubb, Georgia Bulldogs
Before a knee injury ended his season in 2015, Chubb was a Heisman frontrunner. He returned last season and played well, racking up 1,130 yards and 10 touchdowns on 224 carries, but he was still feeling the lingering effects of that repaired ACL early in the season. Now that his knee is not an issue for him, Chubb will be a Heisman favorite again in 2017.
2) Derrius Guice, LSU Tigers
Guice has been in Leonard Fournette's shadow over the past two years, and he is ready to claim the spotlight. Despite splitting carries and only starting when Fournette was hurt, Guice racked up 1,387 yards and 15 touchdowns in 2016. He had two games in which he had over 250 rushing yards and six games with at least 138 yards. Guice looks ready to thrive as LSU's full-time starter.
1) Saquon Barkley, Penn State Nittany Lions
Anyone who watched the Rose Bowl knows how dominant Barkley can be. The 5-foot-11, 223-pounder ran for 1,496 yards and 18 touchdowns while catching 28 passes for 404 yards and four more scores this season, and routinely showed elite vision and agility. Barkley will enter the 2017 season as one of the top Heisman challengers to Lamar Jackson - and best player in the Big Ten.
Back to the NCAA Newsfeed
232 shares Share on FB Share on Twitter
Another article you might like: Super Bowl 54 Preview: 49ers vs. Chiefs + NFL News On Patrick Mahomes, Raheem Mostert & Tevin Coleman Injury Update >>
Related Topics: Sony Michel, Nick Chubb, Ronald Jones II, NCAA Football, Damien Harris, Bo Scarbrough, Royce Freeman, Derrius Guice, Saquon Barkley, L.J. Scott, Myles Gaskin


This is the meter of such hymns as "He Leadeth Me" and "Sweet Hour of Prayer"
1. Give thanks to God, for he is good.
Only the right-eous can come in.
First half of first stanza reprinted by permission of the publisher from Supplementary Volume to Sing the Psalms by Dale A. Schoening. Copyright 1992 Dale A. Schoening. Balance of psalm reprinted by permission of the publisher from Sing the Psalms! by Dale A. Schoening. Copyright 1988 Dale A. Schoening.


text:
conspiracy theorists
January 7, 2022 January 9, 2022 / greenpete58	/ 15 Comments
(Photo: David Attie/Getty Images)
Our son Nick recently visited us for the holidays. We both like to play chess, so we had a couple friendly competitions in the family room. Now that my brain is atrophying due to age and excessive amounts of social media, he destroyed me.
But it got me to thinking about a guy who was once a sort of chess-playing pop star: Bobby Fischer. Bobby was an American chess grandmaster who won the U.S. championship in 1956 at the cheeky age of 14. Overall, he won eight U.S. championships, including a rare 11-0 victory in 1963-64, the only perfect score in the tournament's history. He's mainly known for his Cold War rivalry with a Russian named Boris Spassky. In 1972 he defeated Spassky to become World Chess Champion.
Fischer had his title revoked in 1975 after making outrageous demands prior to a match with Anatoly Karpov. Some think he did it deliberately because his chess skills were so far beyond anyone else, and he had nothing else to prove.
I didn't learn chess until I was 15, but I competed for my high school chess team, and wore out the book Bobby Fischer Teaches Chess. These days, since my wife refuses to learn the game, the only time I drag out the chessboard is when Nick visits.
Fischer died of kidney failure in 2013. I already vaguely knew of certain "personality quirks" of his. Wikipedia filled in the details. They're not pretty:
Although his mother was Jewish, Fischer was a vehement anti-Semite and Holocaust denier
Fischer believed in an international Jewish conspiracy
He agreed with Nietzsche that religion was used to dull the senses of the people, but then joined the evangelical Worldwide Church of God in the mid-1960s
Fischer believed that the world would soon come to an end
He became Catholic at the end of his life and believed "the only hope for the world is through Catholicism"
Fischer got along well with Jewish chess players, but at the same time wrote that "It's time to start randomly killing Jews"
After 911, Fischer applauded the attacks and said "What goes around, comes around"
Fischer openly hoped for a military coup d'état and execution of Jews in the United States
Fischer was never formally diagnosed, but some people have speculated on his sanity.
Last night I watched news coverage and analysis of last year's January 6 insurrection against the U.S. Capitol, and it struck me that Fischer might fit in well with a lot of people in America today. Not so much because of his anti-Semitism and religious obsessions—which are bad enough—but because of his anti-rationalism and conspiracy obsessions.
Today, America has an entire political party—the Republican Party—that has hitched its wagon to an autocratic demagogue who continues to spread a Big Lie about an election result. Not to mention who once ridiculed the coronavirus threat as being a Democratic conspiracy (and views man-made climate change as a worldwide liberal conspiracy).
The PBS show Frontline just aired a documentary that reveals conspiracy theorists and right-wing extremism have only gotten worse since a year ago.
And House Republican Liz Cheney was unseated earlier this year from her conference chair because she condemned Trump for instigating the January 6 riot and implored her fellow Republicans to stand up to him and his catacomb of lies. (Obviously, they haven't.)
Cheney's father, former Vice President Dick Cheney, one of the most conservative Republicans during the Bush II era (and called "Darth Vader" by critics for his hawkishness and advocacy of torture as policy), was quoted as saying today's Republican leaders don't resemble "any of the folks I knew."
The two Cheneys were surrounded by Democrats and the only Republicans present in the House during a moment of silence yesterday.
One would think things couldn't get much worse than January 6, 2021. But according to George Packer, staff writer at The Atlantic and part of a panel on PBS Newshour yesterday, the insurrection is probably just a harbinger, a "warning shot":
How can one overreact to a mortal threat to American democracy, the first in my lifetime that actually seems to be on a road toward making it impossible for the popular will to be respected at the ballot box?
That's been the goal of all these bills passed or debated across legislatures in Georgia, in Arizona, in Michigan, Wisconsin, Pennsylvania, which are not just about restricting access to the ballot, but are about putting elections in the hands of reliable partisans, so that, next time around, we will have states that claim that the election was somehow wrongly held, and that it's thrown into the hands of a partisan legislature, which sends its own electors to Congress to choose the next president.
When you have a compelling but divisive leader, and a political party that falls in behind him, and you can convince enough people to believe in unfounded conspiracies…anything can happen. Witness 1930s Germany. Witness 2022 America.
While you can't formally diagnose a nation, some people (like myself) have speculated on America's sanity.
Checkmate.
COVID-19 in Cartoon America
October 3, 2021 / greenpete58	/ 9 Comments
Watching "CBS Sunday Morning" this morning drove home a startling statistic: the United States ranks number 48 in the world for percentage of citizens who have been vaccinated for COVID-19.
I knew things were bad here. A story on that same program revealed that the social media platform Facebook is, once again, under fire. This time it's for permitting the spread of misinformation on COVID-19—such as that the vaccine contains a microchip allowing the government to monitor us—that is leading directly to people's deaths.
Researchers analyzing Facebook misinformation, not surprisingly, had their Facebook accounts shut down. And Facebook, not surprisingly, declined a "Sunday Morning" request for an interview.
I'm far from being an admirer of Mark Zuckerberg, and I have a lot of issues with Facebook, despite being a moderate user. But one thing Zuckerberg said hit me in the gut. He implied maybe the problem isn't so much Facebook, but America, since other countries are less inclined to get suckered by false information on social media platforms. Ignoring his garbled English, he said "I think that there's that's something unique in our ecosystem here."
My position is that, like other deadly pursuits such as tobacco use, hard drug experimentation, and irresponsible sex, if adults exercise their freedom of choice by choosing ideologically-driven rumors, conspiracy theories, and cartoon science, we shouldn't bemoan any consequences befalling them. The problem is, their "viral" stupidity have consequences for the rest of us. And maybe there is something unique here in America that contributes to our embrace of lies and the lying liars that tell them.
What might this unique condition be?
I've always believed that education, not military or economic might, is the key to a population's well-being. However, the Organisation for Economic Co-operation and Development (OECD) reports that, while the U.S. scores high in upper secondary education (i.e. high school) graduation rates, it is below average in student reading, math, and science skills. Per the OECD's latest (2015) Programme for International Student Assessment (PISA) study, the U.S. ranks 25th out of 40 OECD-member nations. Just behind Latvia.
In other words, we're spitting out high school graduates like assembly line widgets, but many of these widgets are flawed and mucking up the entire machine.
Certainly there are other factors in our embrace of polluted information: an inordinate (or perhaps warranted) distrust of government compared to other countries; a gaping ideological divide that drives the most fanatical ideologues toward irresponsible leaders and media outlets; deep-rooted cultural fears and prejudices.
But doesn't education overcome much of the above? Maybe not.
Just yesterday I learned that the father of one of our daughter's friends tested positive for the coronavirus and is now resting not so comfortably in a hospital bed. Of course, he's unvaccinated. Evidently he has, or perhaps had, a strong ideological opposition to vaccines (and evidently doesn't care about spreading the virus to others). His daughter, at one time livid with him for being so stubborn and selfish, is now wringing her hands with worry. I don't know his educational background, but his daughter attended one of the best and most expensive private schools in the city, so I'm assuming this guy has a college degree, or at minimum a high-school diploma.
And I have an old schoolmate who graduated with honors from high school, attended an Ivy League university, and who works in health care, yet who consistently lampoons the president's Chief Medical Advisor and his attempts to educate Americans with scientific data on the coronavirus.
So maybe education isn't a match for dogmatic ideology. Or maybe American schools these days are less about knowledge and more about job training and income earning potential. I don't know. Does anyone?
Speaking of cartoons, where's Mighty Mouse when you need him?
The Long, Downward Slide of the Republican Party
February 1, 2021 / greenpete58	/ 4 Comments
On January 28, House minority leader Kevin McCarthy (R-CA) made a trip to Florida to meet with ex-president Trump. The intent was to advertise to all that "We're still with you." Reports are that McCarthy wanted to also "apologize" to Trump. It's still unclear what he wanted to apologize for.
A recent Politico poll shows 72 percent of Republicans think the recent U.S. presidential election was fraudulent. Now, think about this: almost three-fourths of one of the two major political parties in the U.S. subscribe to a cockamamie conspiracy theory and support a former leader who, through his irresponsible and incendiary oratory, inspired an insurrection by white supremacists against the U.S. Capitol.
This in addition to four years of incessant bloviating, insults, lies, and just plain bad policy that has turned America into the wealthiest banana republic in the world.
I don't know what these people are thinking. Do they think? But the black comedy we're experiencing now, where GOP congressmen actively promote a political tactic the German National Socialist (Nazi) Party perfected called the Big Lie, refuse to publicly wear facemasks during a deadly pandemic, refuse to hold hearings on Supreme Court nominees (Merrick Garland, in January 2016), or who set off alarms by bursting through congressional metal detectors installed to protect legislators, has to begin somewhere. When and how did this horror show begin?
To be fair, Democrats have also shifted from the middle in the last forty years or so. However, most political observers agree that the shift is much more pronounced on the right side of the aisle and is less about policy than behavior. Part of it is due to a powerful conservative-biased media that erupted during the Clinton presidency and is now a regular news/propaganda source for many Republican voters. Columnist and GOP'er David Brooks recently observed that "a lot of these Trumpy Republicans, they run for office so they can get on FOX News, not to pass (legislation)." That's a lot of power—dangerous power— for a news network to wield, and it's a major contributor to the gridlock we now see in Washington. And FOX News is just one of many conservative outlets…shockingly, one of the more benign ones.
Another reason why the Republican Party has abdicated its responsibility as a guardrail of democracy is existential fear. Authors Daniel Ziblatt and Steven Levitsky, in their book How Democracies Die, trace this fear to a changing demographic precipitated by civil rights legislation in the 1960s. The historically dominant white male demographic is shrinking, due to civil and equal rights, immigration, and an overall more tolerant and diverse secular and non-secular landscape in America.
No group wants to be squatting on the lowest rungs of the socio-economic ladder. But white males, who predominate in the Republican Party, see themselves slipping downward. This existential fear encourages extremism, embodied by, at best, election-year attempts at character assassination, and ever-increasing racist and xenophobic behaviors at worst. And now, Big Lie tactics.
The slide began a long time ago: GOP strategist Lee Atwater's self-admitted "naked cruelty" against Gov. Michael Dukakis (D-MA) before the 1988 presidential election; Republican politicians' incessant attempts to scandalize Bill Clinton during the 1990s (Travelgate, Filegate, Whitewater, then the pearly gate of Monica Lewinsky, which resulted in the partisan weapon of impeachment for lying about sex); the now-discredited "Swift Boat" smears of 2004 presidential candidate John Kerry; GOP accusations that Barack Obama was a Muslim, or that he wasn't born in the U.S. (which Trump spearheaded, quite successfully, before his own presidential run); the 2016 refrains of "Lock Her Up," led by GOP leaders, including Trump, despite zero evidence of criminal wrongdoing by Hillary Clinton. And most recently, Trump's attempt to smear Joe Biden through enlistment of a foreign power in digging up dirt on his political rival's son (and which Trump was justifiably impeached for, despite Senate Republicans' refusal to convict).
Maybe the slide began with the illegal activities of the Nixon re-election campaign committee (CREEP) that resulted in the Watergate scandal.
So far in 2021 it's clear that the Republican Party is still the party of Trump, with all the poison that such an association brings to American democracy. Unless moderate Republicans (those few that are left) have the chutzpah to pull their party back to reality and decency—and if world history is any lesson—there are even darker days ahead for the U.S. than what occurred on January 6.
NEWSFLASH: a recently-elected GOP congresswoman from Georgia named Marjorie Taylor Greene posted on Facebook in 2018 that a Jewish-run banking firm deliberately fired a space laser to start a California wildfire in an effort to manipulate the stock market and benefit itself. Ms. Greene is a QAnon supporter with a history promoting wacky anti-Semitic conspiracy theories. She also posted and liked Facebook comments advocating execution of Democrats. Despite this, Republican leaders, including fellow conspiracy-theorist and House minority leader Kevin McCarthy (see above) have so far done nothing.


We're cramming five days of work into three days this week, because we're spending the long weekend zooming down the ski slopes in Park City, Utah. If you recall from last year my husband has skied ever year of his life since he was three-years-old. After a 15-year pause I rebooted my skiing career last year, and I hope my legs remember how to get down the mountain. I'm actually a solid skier, but given my husband's passion for the sport I don't really have a choice.


text:
Q: Non identical random numbers I have the following formula in Excel (not vba):
=RANDBETWEEN(1,10)

Then I auto fill down 10 rows.  How can I re-write the formula so the numbers don't repeat.

A: There is a an easy way to do this with two columns. In A1, enter
 =RAND()

and fill down to A10.
In the adjacent column, enter
=RANK(A1,$A$1:$A$10)

and fill down. There is a negligible chance that of the 10 random floating point decimals (15 digits accuracy, I think), any two numbers will be the same. Thus, RANK will effectively always generate a random ordering of values from 1 to 10.

A: This previous answer does something similar: see how idx array is filled in the second example.
But it requires using VBA. I don't know if you want that or if you insist on using worksheet formulas only.


text:
A Macquarium is an aquarium made to sit within the shell of an Apple Macintosh computer. The term was coined by computer writer Andy Ihnatko as a joke (a jibe at then outdated Macintosh 512K) but Macquariums have since been built both by Ihnatko himself and by others.

Ihnatko originally designed his Macquarium to use the Compact Macintosh-style shell. In the early 1990s several Mac models in this form factor (the Macintosh 128K, Macintosh 512K and Macintosh Plus) were becoming obsolete, and Ihnatko considered that turning one into an aquarium might be "the final upgrade" — as well as an affordable way to have a color Compact Mac. He has mentioned in interviews that he had seen previous, over-complex attempts at Macintosh aquariums at trade shows that among other drawbacks suffered from noticeable water level lines across the "screen" that spoiled the illusion of a "really good screensaver", which drove him to design a version without a visible water line and which allowed the external case of the donor Mac to remain intact.

Ihnatko's slant-front tank design, made of glass, had a nominal capacity of approximately 10 liters (2.2 UK gallons or 2.5 US gallons). Some subsequent designs have utilized acrylic glass or lexan. Because of its small capacity relative to most other aquariums, the Macquarium is considered a form of pico aquarium, which requires a higher level of diligence to maintain proper water chemistry and cleanliness.

Some of the Macquariums built by others on an individual basis, the versions that Ihnatko refers to as "overly complex", were constructed with parts from two sources located closer to Apple headquarters a 1 Infinite Loop on De Anza Blvd in Cupertino, CA. Across the street from each other was the Tropical Fish Factory and a retail location for Tap Plastics, a supplier of scrap and custom acrylic plastic. The Tropical Fish Factory was one of Northern California's largest aquarium products and live fish retailers. Both businesses are now gone, but their impact on Macquariums will remain. How these Macquariums differed is that the actual Macintosh shell was the aquarium where vent holes and the screen was sealed so that it could hold water.

Macquariums are often stocked with 2-3 goldfish which do not require tank heaters and are cheap. But because goldfish grow large, have high oxygen requirements and are messy eaters they require much larger tanks for survival, Siamese fighting fish and small shrimp are better options.

Other Mac models have similarly been made into aquariums such as the iMac, Macintosh TV, the Apple Lisa and the Power Mac G4 Cube. Various iMac models have been used to make "iMacquariums". By 1995, a Macquarium based on a Macintosh LC 575 appeared in a Macintosh magazine titled "Macquarium '95".

The term "Macquarium" as it refers to the Macintosh-based aquarium is unrelated to the Atlanta, Georgia, user experience firm Macquarium Intelligent Communications.

Footnotes

External links
 iMacquariums built out of G3 iMacs
 Guide to MacQuarium construction, setup, and upkeep
 Andy Ihnatko's original instructions for a Classic form Mac:
 Macquarium construction diary with photos and tips

Aquariums
Fishkeeping
Macintosh platform

redpajama_set_name: RedPajamaWikipedia


Gorgeous hand decorated fine bone china jug, coordinates perfectly with our other range of mugs and homewares. These sparky sparrows wrapped around to feature on both the front and the back, also there is a little motif on the inside of the rim.
2 pint Farmhouse style jug, Dishwasher safe, 135 mm tall.


Liniar Approved 700SC silicone offers a high quality finish to coloured installations.Specially form..
Description : 450 Builders Silicone is a premium quality low modulus non-corrosive neutral cure sili..
Description: Instant Nails is a high strength solvent free gap filling multi use adhesive that pr..
Description: Glass Cleaner is a powerful glass cleaning agent containing a high level of detergents..


text:
Home Discounted medical treatment for clergy and Daham Pasal school teachers
Discounted medical treatment for clergy and Daham Pasal school teachers
Recognising the services rendered by the clergy and Daham Pasal school teachers in making a better society, the Pannipitiya Private Hospital has introduced the Damsaranee card. When this card is presented to the hospital by the clergy and Daham Pasal school teachers, they could avail themselves with special discounts for medical treatment and medical tests.
Expressing his views about the launch, Pannipitiya Private Hospital Chairman Dr Ananda Kuruppuarachchi said, "the hospital decided to provide this facility as a honour to them. We need the service more than ever before of people doing good to society. As a hospital that recognizes social responsibility, we decided to offer the Damsaranee Card to the clergy and Daham Pasal school teachers to encourage them. By cutting off unwanted expenses and passing that benefit to the public, our hospital which has set an example to the entire private hospital field, intend to help as much as possible the people who dedicate themselves for the wellbeing of the society."
By making a request to the hospital, clergy of all religions and Daham Pasal school teachers can obtain the Damsaranee medical card.
Pannipitiya Private Hospital which has earned a high reputation in the hospital field over the past 25 years, under its social responsibility programs such as providing first aid equipment, conducting medical camps, has tremendously benefitted the rural and other public in Sri Lanka.
Pannipitiya Private Hospital has built a tremendous reputation as a cost effective and high quality service provider in the health sector, also it was the first private hospital to acquire the ISO 9001-2008 Certification for all its functions of the hospital. It also has obtained the OHSAS 18001-2007 International standard certification which certifies the security of the patients and staff.


On June 25, 2012 the Ministry of Communications and Informatization of the Republic of Belarus will issue 2 stamps fromthe series "Joint issue of BelarusandRussia. Newts".
Designer: Alexander Mityanin. Printing: offset. Colour: multicoloured. Paper: chalk-surfaced, gummed. Perforation: comb 131/2. Size of the stamps: 37x52 mm. Sheet composition: 8 (4x2) stamps. Size of the sheets: 175x137 mm. Print quantity: 88.000 stamps each.
A sheetlet is also issued. Sheetlet composition: 4 (2 sets) stamps. Perforation: frame 131/2. Size of the sheetlet: 110x136 mm. Print quantity: 20.000 sheetlets.


text:
Pontogenia dentata är en ringmaskart som beskrevs av Imajima 2003. Pontogenia dentata ingår i släktet Pontogenia och familjen Aphroditidae. Inga underarter finns listade i Catalogue of Life.

Källor

Havsborstmaskar
dentata


text:
Sept. 11 widow's prayers answered -- wedding ring found / Husband of 32 years lost in Flight 93 crash
Chuck Squatriglia, Chronicle Staff Writer
Dec. 27, 2001 Updated: Jan. 29, 2012 1:47 p.m.
1of2Dorothy Garcia's 1969 wedding photo of her with her late husband, in her Portola Valley home. Garcia's husband was one of the victims of United Flight 93. Chronicle Photo by Darryl BushDarryl BushShow MoreShow Less
2of2Garcia in her Portola Valley home wearing her husband's ring, which was recovered from the wreckage of Flight 93. Chronicle photo by Darryl Bush Show MoreShow Less
Dorothy Garcia received a miracle for Christmas, wrapped in velvet and delivered to her doorstep by the FBI.
It was her husband, Andrew's, gold wedding band, an eternal symbol of their love, found amid the wreckage of United Airlines Flight 93 after it crashed in a Pennsylvania field on Sept. 11.
"Everyone I've spoken to is amazed by this miracle," said Garcia, 53, of Portola Valley. "God has answered my prayers."
Andrew Garcia, 62, was returning from a business meeting in New Jersey on that dark September day. He managed to punch his wife's number into his cell phone and utter her name before the line went dead.
Days later, Garcia told investigators that the only thing she wanted from the wreckage was her husband's wedding ring. They would know it, she said, from the cursive inscription inside: "All my love, 8-2-69," the date of their wedding.
"It was symbolic of Andy and of our love," Garcia said of the ring. "I just wanted it back."
All promised to do their best but said the odds of finding so small a needle in so large a haystack were slim.
Garcia held out hope, praying endlessly with her prayer group for its return.
"There were nine or 10 people praying hard for its recovery," Garcia said. "I kept praying and believing it would come back."
Garcia's faith was rewarded Dec. 17 when the phone rang.
"I have some news for you," an FBI agent told her.
Garcia immediately knew that the ring had been found. The agent promised to return it as soon as possible.
Two days later, two agents knocked on Garcia's door. They handed her a small white box. Inside, wrapped in tissue secured with a gold seal and a white ribbon, was her husband's wallet, card holder, luggage tag, credit cards and driver's license.
And a small purple velvet pouch containing a ring. Garcia's face lit up when she saw the inscription.
"All my love, 8-2-69."
Sure enough, it was Andy's.
"It's absolutely perfect," Garcia said. "It looks just like he took it off his hand and put it on mine."
Andrew Garcia was born in Sunnyvale and attended San Jose State University. He worked as a grocery clerk and postal carrier through school, then landed a job as an air traffic controller and then as a purchasing manager for United Airlines.
Dorothy met Andrew, a prankster considered quite the eligible bachelor, in 1968 when they both worked at United. She knew instantly that she would marry him.
"My mother says I came home from work that day and said, 'I just saw the man I'm going to marry.' She asked his name and I said I didn't know," Garcia recalled with a laugh. "I found out who he was and the rest was history."
The couple raised a family and in 1991 started the Cinco Group, which sells industrial products.
It has been a difficult three months for Garcia, who struggled through the birth of a grandson, her daughter's wedding anniversary, her own birthday and Thanksgiving without her husband by her side. Christmas was especially hard, she said, because of the little things -- like deciding who to seat at the head of the table.
"Christmas was bittersweet," Garcia said. "But we have a lot to be thankful for. We were married for 32 years. He was a wonderful, beautiful man and I have three wonderful children. We're trying to focus on all the wonderful years we had together and not on our loss. We know we'll be united with him in heaven when it's our time."
Until then, Garcia has her husband's ring, worn on the middle finger of her right hand.
"It's staying there forever," she said.
Chuck Squatriglia
More from SFGATE
California's heavily fortified state Capitol sees only handful...
With a chain link fence erected around the Capitol building, Sacramento was prepared after...
Yosemite National Park officials ask for help in locating...
Yosemite National Park officials are requesting the public's help in locating a missing...
An attorney for the boy's mother said Stephen O'Loughlin's untreated mental illness manifested...
According to the complaint, Daniel Goodwyn identified himself by his first and last name on a...


text:
Sant Joan de Cuculas (en francès Saint-Jean-de-Cuculles) és un municipi occità del Llenguadoc, situat al departament de l'Erau i a la regió d'Occitània.

Referències

Municipis del districte de Montpeller
Municipis del Llenguadoc


Lily Atwood lives in what used to be Washington, D.C. Her father is one of the most powerful men in the world, having been a vital part of rebuilding and reuniting humanity after the war that killed over five billion people. Now he's running to be one of its leaders.
But in the rediscovered peace in this new world, a force has risen. They call themselves The Revealed -- an underground rebel organization that has been kidnapping 18-year-olds across the globe without explanation. No one knows why The Revealed is taking these teens, but it's clear something is different about these people. They can set fires with a snap of their fingers and create wind strong enough to throw over a tree with a flick of their wrist. They are unstoppable, and they have targeted 18-year-old Lily as their next victim.
Lily is too close to breaking free from her father's shadow to let The Revealed ruin things, especially her developing relationship with the mysterious Kai Westerfield -- the sun of her father's rival. Lily isn't about to lose her future just when it's starting to look promising. Not without a fight.
If I'm going to be taken, I plan on having at least a little fun first.
Sleek and silver with the latest technology, including dent-resistant metal, my father's Aston Martin is made to drive. The doors recognize DNA and I'm half him, so it's easy to break inside. I just press my hand against the door. The car needs a moment to analyze, then lifts the door, allowing me to slide into the driver's seat. I toss the still-sealed letter onto the passenger seat.
There's no need to open it. I know what it is.
The car's ignition can either be started with fingerprint recognition or overridden by the key. I took the keys from the shelf by the front door while my mother wasn't home earlier this morning.
I shift gears and press my ballet flats on the gas, not wasting any time.
The odometer climbs higher as the car smoothly accelerates.
The sensor in the car's front mirror triggers our gate, and it opens just in time for me to speed through. Let security try to track me down now.
Pulling out onto the main road, I press my foot to the floor, going well over the speed limit.
I glance in my rearview mirror.
Security doesn't stand a chance!
My eyes return to the road.
Strategically placed, black SUVs block my path to the freeway. My lungs constrict, forcing the air from my chest. Somehow they're already one step ahead of me.
My foot hits the brake.
Adrenaline spins through me as I brace the wheel, keeping the car straight.
My knuckles tighten. I feel the road beneath my slipping under my feet.
The Aston slams to a stop, throwing me up against the wheel. THe first SUV is only inches in front of me. Relief fills me but is quickly erased by mounting frustration.
I rip off my seatbelt, stomping out of the car.
Jeremy, head of my father's security, stands at the front of the line. There are half a dozen other members of security lounging against the cars as they wait for me to arrive. They straighten to a standing position once I storm toward Jeremy.
Jeremy's lips are carved into a thin line. He looks like he's expecting me to barrel into him and continue running down the road. "Did that scare you enough to get these insane ideas out of your system?"
"You could have made me crash?" I advance on him.
"Good thing you were paying attention then," Jeremy says, opening the backdoor of the SUV. I had over the Aston's keys and slump inside. The smell of the black leather reminds me of past trips to speeches and conventions. My father used to let me pick the music on the touch screen positioned in the side-door panel, anything I wanted, while my mother would chastise me for turning it up too loud. But my father would just laugh and tell her to let me be a kid. I feel like a kid now more than ever, and it's a hard reminder that I don't get to make significant decisions. Especially when it comes to my life. It has already been laid out for me.
Jeremy tosses the Aston's keys to one of the security guards standing behind him. He'll drive it back into the garage. "You're gonna get yourself killed if you keep pulling these stunts," he continues his lecture.
"Either I do it or The Revealed does," I say as he slams the door trapping me securely in the back.
Two hundred fifty-two days until I'm nineteen. If I make until then.
After graduating from Arizona State University in 2011, Jessica relocated to Los Angeles where she now works in the film industry. From acting to assisting on the Paramount feature Star Trek: Into Darkness, her experiences have only reinforced her love for living in other worlds – whether they be from her own imagination or someone else's. The Revealed is her first novel.


We have a brand new exciting opportunity, working as a floating support worker supporting individuals with learning disabilities.
BS Social Care is one of the UK`s leading recruitment specialists, specialising in sourcing and placing skilled workers into roles within the social care sector. We offer a free and confidential service and aim to find you the right opportunity.
The role of the floating support worker is to cover 4 sites in total, you will be travelling to each service depending on when they have a need. You will be on 30 hour rota but be fully aware of the house you are at for that shift. Your day to day duties will be supporting with personal care, meal preparation and engaging with the service users. This opportunity is a temp to perm, breaks are paid for and meals are provided which are encouraged to be eaten with the service users.
The ideal candidate will be flexible to work on a rota of 30 hours per week, have access to their own vehicle as you will be expected to be able to go to 4 sites. You need a NQV level 3 or equivalent and have medication training or be previously trained.
You must have experience working within the social care sector to be considered for this role, you must have a minimum of 1 years paid work experience or 6 months with a relevant social care qualification.
We offer competitive rates of pay, ongoing incentives, training opportunities and annual leave. You will work under BS for several weeks then start permanent with the company.
If this sounds like the role for you, then apply online today at www.bssocialcare.co.uk or call Lucie on 01772 252323. We look forward to hearing from you!
If you have a DBS on the update service then please get in touch!


text:
Indonesia's MACAN Museum Anchors Development
July 26, 2016 by Marion Maneker
As we move closer to the projected opening of Indonesia's first major art museum, the press is focusing on the alchemy of art and development:
Businessman Haryanto Adikoesoemo is determined to change that: next year he will open the Museum of Modern and Contemporary Art in Nusantara (Museum MACAN). […]
The 4,000 square meter venue will have an indoor sculpture garden and a special education zone. It is part of a bigger development in Jakarta, still under construction, that will include restaurants, cafes, offices and residences.
Adikoesoemo's collection, built up over a quarter of a century, includes works by S. Sudjojono, considered the father of Indonesian modernism and the expressionist painter Affandi, as well as pieces by well-known Western artists such as Andy Warhol, Frank Stella, Jeff Koons and Gerhard Richter.
Adikoesoemo, who is funding the venture, also wants it to be a space for emerging artists to showcase their work. There are hopes too of collaborations with galleries abroad.
"We want to create a platform for cultural exchanges — for Indonesian art to be brought to the world, and for world art to be brought to Indonesia," said Adikoesoemo, who is head of logistics company AKR Corporindo.
Museum sketches bright future for art in Indonesia (AFP/Taipei Times)
Irving Kriesberg
Guggenheim Retreats from Berlin
Bonhams Believes in Irish Art
DiCaprio's St. Tropez Charity Auction Sets Several Trends
The Art of Posing In Front of Art
How the 'Four Pack' Fits with the Art Fair Circuit
Selection Bias In Art Is What Creates Value


Every night we set our alarm. Most of us also plan a timetable for the next day. The clothes we will wear, our to-do list, the people we will meet … all these things whirl around in our head as we fall asleep.
Suppose after all this meticulous planning, we do not wake up the next morning? Is there such a possibility? Yes of course there is! No one knows how long one is going to live! So tonight can easily be our last night alive.
But we never think on such lines. A lot of things are continuously happening around us- accidents, natural disasters, terrorism, disease, and so many illnesses like premature cancer or heart failure. But we are very sure it will never happen to us.
If you know that tomorrow is going to be your last day, what will you do on waking up? Life is limited, but opportunities for happiness are unlimited! Do you ever think of tasting the limitlessness of these opportunities, ever?!
If we still are not trying to get every experience out of life, what are we waiting for?
Many of us look at the success of others and somewhere we feel a twinge of pain. We attribute luck as the reason for their success and feel justified. But conveniently neglect to acknowledge the immense effort they put into every small and big thing to reach that pinnacle of success.
We aren't prepared to undertake that level of effort nor do we prepare ourselves for any arduous struggle. And so we remain satisfied to stay ordinary or even mediocre and justify it to ourselves in the process.
Even when we see changes in our kids' behavior or see relationships faltering, if we are dissatisfied with our jobs, even then, we refuse to do something concrete about it. Most of us today know the positive effects of working with a Relationship Counselor or a Parenting Counselor or a Life Coach but we live in some rosy bubble that in some magical 'tomorrow', a solution will appear before us and everything will correct itself automatically!
We live in this false hope and continue to live half a life, preserving a status quo of sorts, of pain, worry and fear of the future.
But suppose that tomorrow never dawns?
Waking up to a new day, everyday, is a miracle in itself. How come we never realize its importance? Waking up every morning is not a certainty for every single human being. Only when we realize that waking up every morning is a huge miracle by itself, only then will we treat our every single day as a unique opportunity to do our best, aim for the maximum.
If my every day is to be a unique opportunity, I will not compromise in making the most of it. Why will I continue in the staleness of the dragging difficult relationship? I will not like to waste a single day feeling sorry for myself because my kids do not behave in a certain way or my boss does not value my worth. I will question as to why should I tolerate being in any dull work place doing the kind of work that I hate to my core. I will get out and ask for help. I will ask to any person whom I believe will understand the need to live a full life. Counseling, Therapy, Coaching what ever it takes.
In fact I make this decision every morning and every night - I will not live an average, mediocre life of suffering- I will make it positive, happening and the way I want it!


text:
World Scenery
EXPLORING ENGLAND'S BEAUTIFUL LAKE DISTRICT
The Lake District is located in Cumbria, on the northwest coast of Englandabout an hour from the border to Scotland. The Lake District is to northern England what Cornwall is to the south — a natural, rural paradise that embodies the best of England.
I can't figure out which one I enjoyed more.
And I was thankful I got to experience both on one trip to England!
The lakes in the region are a result of the last ice age. Glaciers receded from here and cut the U-shaped valleys that are now filled with water. I was in the area visiting friends in Lancaster. We had met years prior at a hostel in Cambodia and I was excited to see them again. To have local guides in such a cool part of England? What more could you ask for?!
My friends and I drove up on a Sunday in an attempt to avoid the crowds and the highways were packed with people coming down south after a relaxing weekend at the lakes.
Upon seeing the region, I understood why the place was so popular during the summer.
We started the journey up north at Ullswater. It's the second-largest lake in the region, stretching almost 15km across. It's been a popular holiday destination since the 1890s, when the British aristocracy started to visit due to the excellent sailing and hunting offered by the region.
The surrounding hills and mountains give the lake something of a "z" shape, and it's an incredibly photogenic area. It's often compared to Switzerland's Lake Lucerne — and I could see why.
From there, we made our way south to Windermere. It's the largest natural lake in the country, home to 18 islands and stretching some 18km in length. It's a long, narrow lake (it's less than 2km wide) that started to grow in popularity as early as the 1850s, after new railway lines made it accessible.
I noticed that the lake was busier than Ullswater, and that trend continued as we kept exploring. The farther south we went, the busier it got. I enjoyed the northern lakes more because of this.
Ullswater is located in a rugged area and is surrounded by mountains, hiking trails, and sheep farms. It was very reminiscent of New Zealand and looked a lot like Milford Sound but without all the ice. And though Ullswater is the second-largest lake in the district, it's one of the quietest.
Pooley Bridge Village, located at the northern end of the lake, is famous for the little stone bridge that gives the town its name. The bridge was nothing special, but the river is shallow enough to walk across and, despite its cold temperature, had many kids playing in it.
Driving south, we passed mountain after mountain and farm after farm. There are a lot of sheep in this area, which is another reason this place makes me think of New Zealand.
We drove through the Kirkstone Pass, which provides stunning views of the whole area, including a few of the lakes. There's a quaint inn at the top of the pass which is home to one of the highest pubs in the country (the pass is 454m tall). Kirstone Pass gets it's name from Old Norse, as "kirk" means church and the nearby stone was thought to look like a church's steeple.
Little streams trickle downhill, and there are a number of swimming holes here. However, once you pass through, you reach the southern part of the district and the more heavily touristed area. Coming out of the pass, houses started to spring up all around, more cars were on the road, and people seemed to be everywhere.
Once we were in the southern region of the district, hit traffic and crowds and I longed for the serenity of the northern lakes. We didn't even stop in Windermere because, after driving around for 20 minutes, we realized we just couldn't find parking.
But I wasn't too bothered. I like avoiding crowds. Interesting fact about Windermere, though: the home of Beatrix Potter, who wrote the Peter Rabbit books, is located here.
Not only is the Lake District amazing, but so are the surrounding areas. It's a more populated version of the Lake District but still has all the charm. I woke up to this each morning:
Ancient stone walls sectioned off vast numbers of sheep, green hills rolled on forever in all directions, and tiny English stone cottages dotted the landscape. This whole area had an "English country" feel that I've yet to see elsewhere, and coming here took me back a few centuries. The whole area is so well-preserved and so perfect, you often wonder if the locals got together and decided to rebuild everything like it was in the 1700s for the tourists. People here have just maintained these ancient houses out of their own free will.
Out of all the time I've spent here in England, my weekend in Lancaster and the Lake District felt the most "English." The cottages, the sheep, the hills, and the Sunday venison roast caught by a man wearing this:
How to Visit the Lake District: Logistics
The Lake District are located around 500km north of London. Buses are available via National Express from London and are the cheapest way to get to the area. The journey takes around 10 hours and will cost between 35-50 GBP each way.
The train is much faster, with journeys from London taking between 4-6 hours. However, tickets can be much more expensive. Expect to pay anywhere from 50-200 GBP for a one-way ticket.
If you're coming from Edinburgh or Glasgow, the train ride is just over 2 hours and costs between 40-90 GBP per person for a one-way ticket.
The best way to explore the region is to rent a car. You'll have much more freedom and flexibility, as it is quite a large region and public transportation is few and far between.
Tags: DISTRICT
Thomas Duncan
24 HOURS IN DUBLIN: WHAT TO DO WHEN YOU ONLY HAVE 1 DAY
LIFE IN PARIS: ONE MONTH DOWN
Recommended Check This
Lawrence Ferlinghetti's Enduring San Francisco
Paris's Cathedral of Imagination and Memory
GETTING LOST IN THE LOUVRE
A LESSON IN KINDNESS WHILE HITCHHIKING THROUGH ICELAND
THE PALACE OF VERSAILLES: A COMPLETE VISITOR'S GUIDE
CONNECTING ON THE ISLAND OF IOS
VALENCIA WITHOUT THE ORANGES
Skamart.com brings you travel advice and stories from those who've been there and done that.
Whether you're on the road or dreaming up adventures at home, Skamart is designed to inspire and assist you. Start with our list of featured blogs and check out the information for the travel spot.
Sathish A Kumar on Contact US
Ashish Dubey on Contact US
Andrea H. on Contact US
BluOne on Of Mythology and Fertility in Sicily


Volunteers work to make Aberdeen beautiful!
Celebrating new Welcome to Aberdeen sign.
Thank you very much for taking the time to visit our website. We have made every effort to make the website a valuable resource for both the residents, tourists, visitors, and businesses that have an interest in learning more about our friendly community.
Please don't hesitate to contact us if you have any question or have problems locating any information you are searching for.
We are continuously improving our infrastructure to welcome all businesses that are looking for an area conducive to growth and quality of life.
Our schools are topnotch and able to meet the requirements of all children in preparation for their future. If you are interested in beachcombing, birdwatching, kayaking, or just quiet walks in the pristine forests please come to visit us as soon as possible.
The history of this area has been driven by the logging and fishing industries, although in the last few years there has been a concerted effort to replace these with an emphasis on tourism and designating Aberdeen as the largest retail center on the Washington Coast.
Aberdeen City Hall is located at 200 E. Market Street and is open from 8 a.m. to Noon and 1 p.m. to 5 p.m. Monday through Friday.
Aberdeen Police Department is located at 210 E. Market Street and is open from 9 a.m. to 5 p.m. Monday through Friday. Please call 911 if you have an emergency.


text:
HRDC Prison Phone Justice director quoted re prison phone rates in IL
Illinois Times, May 12, 2016. http://illinoistimes.com/article-17206-prison-p...
Thursday, May 12, 2016 12:08 am
Prison phone bill targets pricing
Lawmakers blast contractor 'kickbacks' to IDOC
By Patrick Yeagle
The Illinois Department of Corrections benefits from a private contractor fleecing prisoners and their families by controlling phone services, according to three state lawmakers pushing legislation to limit what prisoners pay for phone calls. However, IDOC says the money it receives pays for certain inmate health care treatments.
Meanwhile, the private contractor recently settled a lawsuit alleging it illegally recorded calls between inmates and their attorneys, then turned the recordings over to prosecutors.
Rep. Carol Ammons, D-Champaign, sponsors HB6200, which would cap the charge for inmate calls at five cents per minute. The bill comes as the Federal Communications Commission fights prison phone contractors in federal court over rules the agency created last year to cap prison call charges.
Ammons said IDOC benefits from "kickbacks" drawn from what the agency's sole phone contractor, Texas-based Securus Technologies, charges Illinois inmates. State law authorizes IDOC to collect the money, which the law refers to as "commissions." Nicole Wilson, spokeswoman for the Illinois Department of Corrections, says the money helps pay for crucial programs to treat inmates with Hepatitis C, HIV, and AIDS.
Ammons' bill would prohibit IDOC from collecting commissions on phone calls, and she has asked Illinois Attorney General Lisa Madigan to investigate the commissions.
IDOC anticipates around $12 million in commissions for the coming year. Until last year, IDOC only received about $5.5 million, and the rest went to the Illinois Department of Central Management Services. IDOC is slated to receive the full amount of its commission this year.
Inmates in Illinois prisons aren't allowed to receive phone calls, and they can only make calls on a schedule to people on their pre-approved list. Calls are limited to 30 minutes. Inmates must purchase prepaid phone cards or call collect. In addition to paying for collect calls, families often send money to imprisoned loved ones.
Inmates in the custody of IDOC pay $3.55 for each 30-minute call. That includes a $3.35 charge for the first minute of each call, plus 1.5 cents per minute until minute 15. The rest of the call, from minute 16 through minute 30, is free. Wilson says the rate structure is a response to an FCC rule which banned flat-rate phone charges for inmate calls.
"With the previous vendor, it was not unusual for offenders' families to pay between $6.31 and $9.70 for a 30-minute phone call," Wilson said, adding that IDOC has no control over phone rates at local and county jails.
Under Ammons' bill capping rates at five cents per minute, a 30-minute call within the state would cost $1.50 at most. The bill would outlaw other fees and charges, although it wouldn't take effect until the current contract is up.
IDOC's phone contractor, Securus, has faced allegations besides price gouging. In March, Securus settled a federal lawsuit filed in 2014, alleging the company illegally recorded confidential calls between inmates and attorneys. The lawsuit claimed those recordings were then disclosed to prosecutors. An attorney for Securus could not be reached for comment.
The Intercept, an online news website, in 2015 received a cache of 70 million call recordings leaked from Securus' database. Around 57,000 of the recordings were of inmates and their attorneys, according to the website. The leak occurred after the Texas lawsuit was filed.
In 2014, an official in the Alaska Department of Corrections disclosed that an unknown number of attorney-client calls were recorded by Securus, although the official portrayed the recordings as accidental.
Carrie Wilkinson, director of the Prison Phone Justice Campaign for the Florida-based Human Rights Defense Center, says corrections agencies and county jails are as much to blame as Securus and other phone contractors for the prices inmates and their families pay. Wilkinson says correctional agencies often demand commissions as part of the contract. She says that when the state of New York eliminated commissions in 2008, the rate dropped to five cents per minute, and the volume of calls increased dramatically.
"The basic problem is that correctional agencies are the customer, not inmates or their families," Wilkinson said. "Correctional industries are trying to jack the rates for kickbacks."
Danielle Chynoweth, organizing director of the California-based Center for Media Justice, says research shows contact with families helps keep inmates from committing further crimes once released.
"The number one factor to avoid recidivism is contact with friends and family," she said. "The phone call is the most important piece of that, because often in the state of Illinois, family members are scattered across the state, and they're not able to see their loved ones in person. The phone call is the link; it's the lifeline to their family members."


text:
Walther Ulbricht – The papers of the wall builder
ByTom Topol	Hours 18 May, 2021 8 May, 2021
"No one intends to build a wall." This sentence has gone down in history. It was uttered in 1961 by GDR head of state Walter Ulbricht (1893-1973). 56 years later, unique documents from the life of the "wall builder" were sold under the hammer in Hamburg. Walther Ulbricht papers wall
Honecker, Mielke, Stoph, and, most recently, the GDR currency procurer Alexander Shalck-Golodkovsky: a Hamburg auctioneer has a knack for the estates of GDR greats. In October 2017, he was auctioning documents of Walter Ulbricht. The offer has a historical rank. Thus, his membership card (No. 2!) of the Communist Party of Germany (KPD) from 1945 is offered at the exclamation price of 1000 euros. The membership card of the Socialist Unity Party of Germany (SED) from 1946 is estimated at 500 euros. It has the signature Ulbricht's, as the occupation is indicated: "Party worker". The tattered identity card of the party leader from 1945 has the same fingerprint and signature. Walther Ulbricht papers wall
Identity card of the party leader from 1945
More curious than historically significant is the free ticket for the Deutsche Reichsbahn for Ulbricht, a member of the state parliament, from 1947 and an annual ticket for the Hoppegarten racetrack. Of interest to historians are documents belonging to Ulbricht's wife Lotte. In 1937, under Stalin's regime of terror, she had to make statements in exile in Moscow about comrades who had also sought protection therefrom Hitler's henchmen. Walther Ulbricht papers wall
Free ticket for the Deutsche Reichsbahn for Ulbricht, an annual ticket for the Hoppegarten racetrack, and his state parliament member ID
She had lived with Ulbricht in Moscow since 1938. However, they were not married until 1953 in the GDR. But even before that, Lotte used the name Ulbricht illegally, since her official name was still Lotte Kühn. A curious letter from Lotte Ulbricht to the chief of the Saxon police from 1946 is now also being auctioned. She asks to be officially called Ulbricht and gives the following reasons for this: "I have had this surname for years and am generally known by it. I have carried the name in good faith…"
Lotte Ulbricht (1903-2002) was Ulbricht's second wife.
And where do all the objects and documents that are now being auctioned off come from? The auctioneer is silent. According to insider information, they come from the estate of a Berlin communist. Walther Ulbricht papers wall
Passports, Profiteers, Police – A Swiss war secret
A pretty rare passport of Transnistria
Martin Weise says:
18 May, 2021 at 06:04
thanks for showing!
Tom Topol says:
Thanks for reading 😉


text:
You are here: Home1 / What's New2 / What's New3 / Highlight4 / Fellowship Place receives 2023 grant award from the Petit Family Found...
Fellowship Place receives 2023 grant award from the Petit Family Foundation
Fellowship Place is the recipient of a 2023 grant award from the Petit Family Foundation in support of the agency's Expressive Arts program, which inspires and promotes artistic expression as a therapeutic tool for adults living with chronic mental illness. The program offers a safe haven where clients participate in a variety of artistic forms of expression, including visual art, writing, and music.
Photo: Dr. Bill Petit, President Petit Family Foundation, Melissa Holroyd, Development Director of Fellowship Place, Bernie Lidestri Petit Family Foundation Board Member.
Tags: Fellowship Place, Petit Family Foundation
https://fellowshipplace.org/wp-content/uploads/2022/12/Petit-image-2022.jpg 1000 1500 Melissa Holroyd /wp-content/uploads/2021/08/fellowship-place-logo-600x436.png Melissa Holroyd2022-12-02 14:16:112022-12-02 14:29:42Fellowship Place receives 2023 grant award from the Petit Family Foundation
Fellowship Place Annual Halloween Social Club Dance
Fellowship Place awarded $180,000 Responsive Grant from the Community Foundation for Greater New Haven
Fellowship Place partners with Yale University and the Volunteer Income Tax Assistance program
A Message From Our Executive Director
Thank You to the Jamie A. Hulley Arts Foundation, for Underwriting a Weekly Dance Class
A Very Special Thank You to Our Friends at Kolmar Americas
A Joyful Holiday Season and a Happy and Healthy New Year from Fellowship Pl... Fellowship Place the Recipient of a 2023 Pfizer Inc. Grant Award


Floating on a Stock Exchange… a secret dream? If not… why not?
Floating on the Stock Exchange… a secret dream? If not… why not? from Peter Wild on Vimeo.
http://www.pete-wild.co.uk/wp-content/uploads/2016/09/London-Stock-Exchange-lse.jpg 480 853 petewild http://www.pete-wild.co.uk/wp-content/uploads/2017/11/PeteWildLgo-1030x300.png petewild2016-09-15 13:37:422017-01-18 13:53:20Floating on a Stock Exchange... a secret dream? If not... why not?


text:
For the Foodies: A Lunch Date with Fuchsia Dunlop
cooking · fglf2017 · food · lunch
The Secrets of Authentic Chinese Cuisine
Learn the secrets of authentic Chinese Cuisine from award-winning chef and food author Fuchsia Dunlop, considered one of the worlds great experts on authentic Chinese Cuisine.
Ever wanted to be able to make authentic tasting Chinese dishes like these … yourself?
Home Cooked Authentic Chinese Dishes by Fuchsia Dunlop – Photographs via Instagram @fuchsiadunlop.
Here's your chance …
Don't miss out on this hands-on introduction to some of the cooking techniques of the Jiangnan region in eastern China, an area renowned for centuries for its exquisite cuisine and sophisticated gastronomic culture.
The class will be followed by a delicious lunch of your own creation.
VIDEO: Fuchsia on the healthy side of Chinese cuisine …
[youtube https://www.youtube.com/watch?v=km2xrY_Ckxo]
COOKERY CLASS, FOLLOWED BY LUNCH: FUCHSIA DUNLOP ON THE SECRETS OF AUTHENTIC CHINESE COOKING
Date: Thursday, January 12 2017
Time: 10:00 a.m.- 2:00 p.m.
Location: No. 5 Middle Street, Galle Fort.
Participant:
Fuchsia's work has appeared in publications including The Financial Times, Lucky Peach, Saveur, The New Yorker, Observer Food Monthly and Gourmet.
She is a regular guest on radio and television, and has appeared on shows including Anthony Bourdain's Parts Unknown (2016), CNN's On China, Gordon Ramsay's The F-Word, NPR's All Things Considered and The Food Programme on BBC Radio 4.
In the United States, she has won four James Beard awards, including International Cookbook (2014) for Every Grain of Rice and three for articles published in Lucky Peach and The Financial Times.
She was named 'Food Journalist of the Year' by the British Guild of Food Writers (GFW) in 2006, and has also won GFW awards for three of her books.
Her memoir, Shark's Fin and Sichuan Pepper won the IACP Jane Grigson Award in the US, and the GFW Kate Whiteman Award for Food and Travel in the UK.
… Learn More About: Fuchsia Dunlop


The Feds don't play around.
TMZ has obtained a series of images prosecutors presented to a judge during Tekashi 6ix9ine's bail hearing. The Feds asked the judge to deny the troll rapper bond because the photos and videos showed that 6ix9ine was at the scene of crimes.
There's a screen grab from that video, which prosecutors think Tekashi gave to a 3rd party to post on the Internet. Also included ... matching shots of a backpack that was stolen, and later found in Tekashi's home during a Sept. raid. That raid also turned up an AR-15 rifle ... Cops also matched images of 6ix9ine from 2 Brooklyn shootings on April 21.
You can check out all of the many dated images here. The "3rd party" Tekashi is accused of giving the images to appears to be DJ Akademiks.
The judge seemed to agree with prosecutors that they have the goods on 6ix9ine because he's still being denied bail.


Wow, it's been six months since I've opened my own practice! Time sure flies! It has been very busy at the hospital, and it's so rewarding to be able to offer high quality, compassionate care to all the adorable pets brought in. I am so happy to see all my prior patients and their parents, and I'm excited to meet my wonderful new clients.
We have a dream team of support staff, and many of them are familiar faces. Jane has joined us and uses her extensive skill set and great personality to lead our front desk staff. LoriAnn is a newcomer that has impressed us with her enthusiasm and warmth at the reception desk. Our Registered Veterinary Technician Maureen brings her extensive anesthetic experience to help make sure your pets are safe; in addition she plays a large role in the support and growth of the hospital. Amy continues to amaze everyone with her innate ability to nurture sick and nervous pets. She is the rock solid center of the hospital, managing nursing care for hospitalized pets, coordinating doctor exams in the rooms, and educating clients. Beth is a "jack of all trades", helping with everything, everywhere she's needed, with a bright smile and eagerness we admire. I think the best part of our team is that we all get along very well. We enjoy helping animals, and I hope that our happiness makes you feel comfortable and welcome.
We have exciting news - because we've been so busy, we're trying to hire a second doctor. Dr. Tiffany Margolin has started working at the hospital, and we'll see if it's a good fit. Dr. Tiffany is a sweet and energetic experienced veterinarian, and she has treated birds, reptiles, exotic mammals, dogs and cats for many years. She is Avian board certified which allows us to offer advanced veterinary care to the pet birds in the area. Dr. Tiffany is also a certified acupuncturist and chiropractor. I would like to encourage all owners of exotic pets with chronic diseases or arthritis to take advantage of this service.
9 am-7 pm. As an additional convenience we are carrying several flavors of hay from Zooh Corner Rabbit Rescue and Bunny Bunch, plus rabbit and guinea pig pellets. We just started to carry Zooh Corner toys for sale and will begin carrying Harrison's bird diet soon. We are taking requests and can supply you and your pet with almost anything you might need.
Here at EACC, we often get local area wildlife in need of care. This baby squirrel was found with its siblings lying at the base of a tree and a caring person brought them in since the mother was nowhere to be found. Vet Assistant Amy was crucial in nurturing the squirrels and getting them healthy again.
Dr. Kanfer will be at Bunny Expo 2010 at the Bunny Bunch Burrow on Sunday, October 3. She will be giving a talk about rabbit and exotic care and offering private consultations for a suggested donation. Go to bunnybunch.org for more details.
Animals for Adoption at EACC!
How about a Red-Eared Slider or a young female Guinea Pig? Looking for a rabbit (we have four for adoption!) or a HUGE sulcata tortoise? If you are interested please let us know. They would very much like to go to a loving home.
Thank you for your support of EACC!
Hours of operation: Tuesday thru Saturday 9 a.m.to 5 p.m.