text:
<?php

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\View\Model\JsonModel;

class IndexController extends AbstractActionController
{
    public function indexAction()
    {
        return new ViewModel();
    }

    public function testAction(){

        $data_array = 'Запрос к базе';

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($data_array);
        return $JsonModel;
    }

    public function ajaxAction(){

        /*
         * isNonIndependent - output only in the parent screen
         * isNotScreen - no screen output
         * */

        $sys = array(
            array('id' => 10501, 'category' => 'base', 'entity' => 'countries', 'screen' => 'countries', 'name' => 'Страны'),
            array('id' => 10502, 'category' => 'base', 'entity' => 'address_types', 'screen' => 'address_types', 'name' => 'Типы адреса'),
            array('id' => 10503, 'category' => 'base', 'entity' => 'region_types', 'screen' => 'region_types', 'name' => 'Типы региона'),
            array('id' => 10504, 'category' => 'base', 'entity' => 'regions', 'screen' => 'regions', 'name' => 'Регионы'),
            array('id' => 10505, 'category' => 'base', 'entity' => 'location_types', 'screen' => 'location_types', 'name' => 'Типы нас. пункта'),
            array('id' => 10506, 'category' => 'base', 'entity' => 'street_types', 'screen' => 'street_types', 'name' => 'Типы улиц'),
            array('id' => 10507, 'category' => 'base', 'entity' => 'sex_types', 'screen' => 'sex_types', 'name' => 'Типы пола служащего'),
        );

        $sys_docs = array(
            array('id' => 106010, 'category' => 'base', 'entity' => 'period_types', 'screen' => 'period_types', 'name' => 'Типы периодов'),
            array('id' => 106020, 'category' => 'base', 'entity' => 'enumeration_types', 'screen' => 'enumeration_types', 'name' => 'Типы нумерации'),
            array('id' => 106021, 'category' => 'base', 'entity' => 'doc_type_groups', 'screen' => 'doc_type_groups', 'name' => 'Группы типов документов'),
            array('id' => 106022, 'category' => 'base', 'entity' => 'doc_secrecy_types', 'screen' => 'doc_secrecy_types', 'name' => 'Типы секретности документа'),
            array('id' => 106023, 'category' => 'base', 'entity' => 'doc_urgency_types', 'screen' => 'doc_urgency_types', 'name' => 'Типы срочности документа'),
            array('id' => 106030, 'category' => 'base', 'entity' => 'doc_types', 'screen' => 'doc_types', 'name' => 'Типы документов'),
            array('id' => 106040, 'category' => 'base', 'entity' => 'node_types', 'screen' => 'node_types', 'name' => 'Типы узлов маршрута'),
            array('id' => 106050, 'category' => 'base', 'entity' => 'doc_attributes_types', 'screen' => 'doc_attributes_types', 'name' => 'Типы аттрибутов'),
            array('id' => 106060, 'category' => 'base', 'entity' => 'enumeration', 'screen' => 'enumeration', 'name' => 'Нумерация'),
        );

        /*BASE 1 LVL */
        $array_base = array(
            array('id' => 101, 'category' => 'base', 'entity' => 'ranks', 'screen' => 'ranks', 'name' => 'Звания'),
            array('id' => 102, 'category' => 'base', 'entity' => 'positions', 'screen' => 'positions', 'name' => 'Должности'),
            array('id' => 103, 'category' => 'base', 'entity' => 'position_rank', 'screen' => 'positions', 'name' => 'Соответствие звания должности',
                'isNonIndependent' => true ),
            array('id' => 104, 'category' => 'base', 'entity' => 'pass_doc_types', 'screen' => 'pass_doc_types', 'name' => 'Типы удостоверяющих личность документов'),
            array('id' => 105, 'category' => 'base', 'entity' => 'sys', 'screen' => 'sys', 'name' => 'Основные настройки', 'isNotScreen' => true,
                'childNodes' => $sys),
            array('id' => 106, 'category' => 'base', 'entity' => 'sys_docs', 'screen' => 'sys_docs', 'name' => 'Настройки документов', 'isNotScreen' => true,
                'childNodes' => $sys_docs
            ),
            array('id' => 107, 'category' => 'base', 'entity' => 'commander_types', 'screen' => 'commander_types', 'name' => 'Тип руководства подразделения'),

        );

        $array_staff = array(
            array('id' => 201, 'category' => 'staff', 'entity' => 'person', 'screen' => 'person', 'name' => 'Картотека Личных дел'),
            array('id' => 202, 'category' => 'staff', 'entity' => 'person_position_history', 'screen' => 'person', 'name' => 'История назначений',
                'isNonIndependent' => true ),
            array('id' => 203, 'category' => 'staff', 'entity' => 'person_rank_history', 'screen' => 'person', 'name' => 'История присвоения званий',
                'isNonIndependent' => true ),
            array('id' => 204, 'category' => 'staff', 'entity' => 'person_address', 'screen' => 'person', 'name' => 'Адрес лица',
                'isNonIndependent' => true ),
            array('id' => 205, 'category' => 'staff', 'entity' => 'role', 'screen' => 'person', 'name' => 'Роль служащего',
                'isNonIndependent' => true ),
        );

        $array_doc = array(
            array('id' => 301, 'category' => 'doc', 'entity' => 'doc', 'screen' => 'doc', 'name' => 'Документы'),
            array('id' => 302, 'category' => 'doc', 'entity' => 'doc_attribute', 'screen' => 'doc', 'name' => 'Аттрибуты документа',
                'isNonIndependent' => true ),
            array('id' => 303, 'category' => 'doc', 'entity' => 'pass_docs', 'screen' => 'pass_docs', 'name' => 'Документы удостоверяющие личность'),
            array('id' => 304, 'category' => 'doc', 'entity' => 'route', 'screen' => 'route', 'name' => 'Маршрут'),
            array('id' => 305, 'category' => 'doc', 'entity' => 'route_node', 'screen' => 'route', 'name' => 'Пункт маршрута',
                'isNonIndependent' => true ),
            array('id' => 306, 'category' => 'doc', 'entity' => 'route_node_attribute', 'screen' => 'route_node', 'name' => 'Изменяемые в узле атрибуты',
                'isNonIndependent' => true )
        );

        $array_unit = array(
            array('id' => 401, 'category' => 'unit', 'entity' => 'unit', 'screen' => 'unit', 'name' => 'Организация/Юр.Лицо/Подразделение'),
            array('id' => 402, 'category' => 'unit', 'entity' => 'unit_commander', 'screen' => 'unit', 'name' => 'Руководство',
                'isNonIndependent' => true ),
            array('id' => 403, 'category' => 'unit', 'entity' => 'unit_positions', 'screen' => 'unit', 'name' => 'Штатное расписание',
                'isNonIndependent' => true ),
            array('id' => 404, 'category' => 'unit', 'entity' => 'unit_doc_types', 'screen' => 'unit', 'name' => 'Типы документов подразделения',
                'isNonIndependent' => true ),
            array('id' => 405, 'category' => 'unit', 'entity' => 'unit_routes', 'screen' => 'unit', 'name' => 'Маршруты в подразделении',
                'isNonIndependent' => true ),
            array('id' => 406, 'category' => 'unit', 'entity' => 'unit_enumeration', 'screen' => 'unit', 'name' => 'Нумерация в подразделении',
                'isNonIndependent' => true ),
        );

        $data_array = array(
            array('id' => 1, 'entity' => 'base', 'screen' => 'base', 'name' => 'Базовые определения', 'isNotScreen' => true,
                'childNodes' => $array_base),
            array('id' => 2, 'entity' => 'staff', 'screen' => 'staff', 'name' => 'Персонал', 'isNotScreen' => true,
                'childNodes' => $array_staff),
            array('id' => 3, 'entity' => 'doc', 'screen' => 'doc', 'name' => 'Документы', 'isNotScreen' => true,
                'childNodes' => $array_doc),
            array('id' => 4, 'entity' => 'unit', 'screen' => 'unit', 'name' => 'Подразделение', 'isNotScreen' => true,
                'childNodes' => $array_unit),
        );

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($data_array);
        return $JsonModel;
    }

    public function pageAction(){
        //
    }

    public function ranksAction(){

        $editable_array = array('name' => 'Название', 'name_min' => 'Сокращенное название', 'description'=> 'Описание');
        $prototype_array = array('editable_properties' => $editable_array);

        $data_array = array(
            array('name' => 'Рядовой', 'id' => 1, 'order' => 1),
            array('name' => 'Ефрейтор', 'id' => 2, 'order' => 2),
            array('name' => 'Младший сержант', 'id' => 3, 'order' => 3),
            array('name' => 'Сержант', 'id' => 4, 'order' => 4),
            array('name' => 'Старший сержант', 'id' => 5, 'order' => 5),
            array('name' => 'Старшина', 'id' => 6, 'order' => 6),
            array('name' => 'Прапорщик', 'id' => 7, 'order' => 7),
            array('name' => 'Старший прапорщик', 'id' => 8, 'order' => 8),
            array('name' => 'Младший лейтенант', 'id' => 9, 'order' => 9),
            array('name' => 'Лейтенант', 'id' => 10, 'order' => 10),
            array('name' => 'Старший лейтенант', 'id' => 11, 'order' => 11),
            array('name' => 'Капитан', 'id' => 12, 'order' => 12),
            array('name' => 'Майор', 'id' => 13, 'order' => 13),
            array('name' => 'Подполковник', 'id' => 14, 'order' => 14),
            array('name' => 'Полковник', 'id' => 15, 'order' => 15),
            array('name' => 'Генерал-майор', 'id' => 16, 'order' => 16),
            array('name' => 'Генерал-лейтенант', 'id' => 17, 'order' => 17),
            array('name' => 'Генерал-полковник', 'id' => 18, 'order' => 18),
            array('name' => 'Генерал армии', 'id' => 19, 'order' => 19),
            array('name' => 'Маршал Российской Федерации', 'id' => 20, 'order' => 20)
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function instantSearch($query, $data_array, $id = null){
        $full_data_array = $data_array;
        $data_array = array();

        if($query){
            $strlen = strlen($query);
            if($strlen < 4){
                $data_array = $full_data_array;
            }else{
                foreach($full_data_array as $key => $value){
                        if(strstr($value['name'], $query)){
                            $data_array[] = $full_data_array[$key];
                        }
                }
            }
        }

        if(!$query){
            $data_array = $full_data_array;
        }
        return $data_array;
    }

    public function baseSearchArray($array, $current_id, $search_pole_name){
        $result = array();

        //echo "foreach\n";
        foreach($array as $item){
            if(!is_array($item[$search_pole_name])){ //если поле не массив
                if($current_id == $item[$search_pole_name]){
                    /*echo "1\n";
                    echo "current_id= ".$current_id.' search_pole_value='.$item[$search_pole_name]."\n";*/
                    //ret $item;
                    $result[] = $item;
                }else{
                    /*echo "2-error\n";
                    echo "current_id= ".$current_id.' search_pole_value='.$item[$search_pole_name]."\n";*/
                    if(isset($item['childNodes'])){
                        //echo "2-success\n";
                        $result[] = $this->baseSearchArray($item['childNodes'], $current_id, $search_pole_name);
                    }
                }
            }else{ //если поле массив значений (связная таблица)
                //echo "3\n";
                foreach($item[$search_pole_name] as $value){
                    if($current_id == $value){
                        $result[] = $item;
                    }
                }
            }
        }
        if(count($result)>0){
            return $result;
        }
        return null;
    }

    public function searchArray($array, $current_id, $search_pole_name = null){
        if(!isset($search_pole_name)){
            return $this->baseSearchArray($array, $current_id, 'id');
        }else{ //если задано название поля
            if(!is_array($current_id)){ // current_id не массив
                //echo "search, current_id not array \n";
                return $this->baseSearchArray($array, $current_id, $search_pole_name);
            }else{ //current_id - массив значений
                $tree_array = array();
                foreach($current_id as $id){
                    $tree_array = $this->baseSearchArray($array, $id, $search_pole_name);
                }
                return $tree_array;
            }
        }
    }

    public function searchDependencies($values_array, $array, $search_pole_name){

    }

    public function checkArray($array, $current_id, $search_pole_name = null){

        if(!isset($search_pole_name)){
            foreach($array as $item){
                if($current_id == $item['id']){
                    return true;
                }else{
                    if(isset($item['childNodes'])){
                        return $result = $this->checkArray($item['childNodes'], $current_id);
                    }
                }
            }
        }else{
            foreach($array as $item){
                if($current_id == $item[$search_pole_name]){
                    return true;
                }else{
                    if(isset($item['childNodes'])){
                        return $result = $this->checkArray($item['childNodes'], $current_id, $search_pole_name);
                    }
                }
            }
        }
        return false;
    }

    public function positionsAction(){

        $editable_array = array('name' => 'Название', 'name_min' => 'Сокращенное название', 'description'=> 'Описание');
        $prototype_array = array('editable_properties' => $editable_array);

        $data_array = array(
            array('name' => 'Командир полка', 'description'=> 'Описание тест описание тест тест описания тест', 'id' => 1, 'order' => 1),
            array('name' => 'Начальник штаба полка', 'id' => 2, 'order' => 2),
            array('name' => 'Начальник тыловой службы', 'id' => 3, 'order' => 3),
            array('name' => 'Начальник финансовой службы', 'id' => 4, 'order' => 4),
            array('name' => 'Заместитель командира полка по воспитательной части', 'id' => 5, 'order' => 5),
            array('name' => 'Заместитель начальника штаба полка', 'id' => 6, 'order' => 7),
            array('name' => 'Заместитель командира полка', 'id' => 7, 'order' => 6),
            array('name' => 'Заместитель начальника тыловой службы', 'id' => 8, 'order' => 8),
            array('name' => 'Заместитель начальника финансовой служб', 'id' => 9, 'order' => 9),
            array('name' => 'Начальник пищеблока', 'id' => 10, 'order' => 10),
            array('name' => 'Начальник пожарной службы', 'id' => 11, 'order' => 11),
            array('name' => 'Заместитель начальника пожарной службы', 'id' => 12, 'order' => 12),
            array('name' => 'Начальник медицинской службы', 'id' => 13, 'order' => 13),
            array('name' => 'Старший врач', 'id' => 14, 'order' => 14),
            array('name' => 'Врач', 'id' => 15, 'order' => 15),
            array('name' => 'Медсестра', 'id' => 16, 'order' => 16),
            array('name' => 'Пожарный', 'id' => 17, 'order' => 17),
            array('name' => 'Бухгалтер', 'id' => 18, 'order' => 18),
            array('name' => 'Сметчик', 'id' => 19, 'order' => 19),
            array('name' => 'Повар', 'id' => 20, 'order' => 20),
            array('name' => 'Водитель', 'id' => 21, 'order' => 21),
            array('name' => 'Сварщик', 'id' => 22, 'order' => 22),
            array('name' => 'Инженер КИПиА', 'id' => 23, 'order' => 23),
            array('name' => 'Монтажник', 'id' => 24, 'order' => 24),
            array('name' => 'Программист', 'id' => 25, 'order' => 25),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function positionsranksAction(){
        /*
         * Предполагается что экшен возращает выборку соответтсвующих входящему post_id
         * */

        $editable_array = array();
        $prototype_array = array('editable_properties' => $editable_array);

        $data_array = array(
            1 => array('name' => 'Рядовой', 'id' => 1, 'order' => 1),
            2 => array('name' => 'Сержант', 'id' => 2, 'order' => 2),
            3 => array('name' => 'Старший сержант', 'id' => 3, 'order' => 3),
            4 => array('name' => 'Лейтенант', 'id' => 4, 'order' => 3),
            5 => array('name' => 'Старший лейтенант', 'id' => 5, 'order' => 3)
        );

        $data_array = array(
            array('id' => 4, 'order' => 1), //id, rank_id, pos_id, order
            array('id' => 5, 'order' => 2),
            array('id' => 6, 'order' => 3),
            array('id' => 7, 'order' => 4),
            array('id' => 8, 'order' => 5)
        );

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function passdoctypesAction(){
        /*
         * Предполагается что экшен возращает выборку соответтсвующих входящему post_id
         * */

        $editable_array = array('name' => 'Название', 'isFull' => 'Полная идентификация',
                                'isMain'=> 'Основной', 'isSeries' => 'Используется серия документа', 'seriesMask' => 'Маска серии', 'numberMask' => 'Маска номера', 'validPeriod' => '');
        $prototype_array = array('editable_properties' => $editable_array);

        $data_array = array(
            array('id' => 1, 'name' => 'Паспорт', 'isFull'=> true, 'isMain' => true, 'isSeries' => true,
            'seriesMask' => '', 'numberMask' => '', 'validPeriod' => ''),
            array('id' => 2, 'name' => 'Водительские права', 'isFull'=> true, 'isMain' => true, 'isSeries' => true,
                'seriesMask' => '', 'numberMask' => '', 'validPeriod' => ''),
            array('id' => 3, 'name' => 'Загранпаспорт гражданина РФ', 'isFull'=> true, 'isMain' => false, 'isSeries' => true,
                'seriesMask' => '', 'numberMask' => '', 'validPeriod' => ''),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function addresstypesAction(){
        $editable_array = array('name' => 'Название', 'priority' => 'Приоритет');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Регистрации', 'priority'=> 1),
            array('id' => 2, 'name' => 'Проживания', 'priority'=> 2),
            array('id' => 3, 'name' => 'Почтовый', 'priority'=> 3),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function countriesAction(){
        $editable_array = array('code' => 'Код', 'name' => 'Название', 'fullname' => 'Полное название');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'code' => 'ABH', 'name' => 'Абхазия', 'fullname'=> 'Республика Абхазия'),
            array('id' => 2, 'code' => 'AUS', 'name' => 'Австралия', 'fullname'=> 'Австралия'),
            array('id' => 3, 'code' => 'AUT', 'name' => 'Австрия', 'fullname'=> 'Австрийская Республика'),
            array('id' => 4, 'code' => 'AZE', 'name' => 'Азербайджан', 'fullname'=> 'Республика Азербайджан'),
            array('id' => 5, 'code' => 'ALB', 'name' => 'Албания', 'fullname'=> 'Республика Албания'),
            array('id' => 6, 'code' => 'DZA', 'name' => 'Алжир', 'fullname'=> 'Алжирская Народная Демократическая Республика'),
            array('id' => 7, 'code' => 'ASM', 'name' => 'Американское Самоа', 'fullname'=> 'Американское Самоа'),
            array('id' => 8, 'code' => 'AIA', 'name' => 'Ангилья', 'fullname'=> 'Ангилья'),
            array('id' => 9, 'code' => 'AGO', 'name' => 'Ангола', 'fullname'=> 'Республика Ангола'),
            array('id' => 10, 'code' => 'AND', 'name' => 'Андорра', 'fullname'=> 'Княжество Андорра'),
            array('id' => 11, 'code' => 'ATA', 'name' => 'Антарктида', 'fullname'=> 'Антарктида'),
            array('id' => 12, 'code' => 'ATG', 'name' => 'Антигуа и Барбуда', 'fullname'=> 'Антигуа и Барбуда'),
            //array('id' => 12, 'code' => '', 'name' => '', 'fullname'=> ''),

        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function regiontypesAction(){
        $editable_array = array('shortname' => 'Сокращение', 'name' => 'Название');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Республика', 'shortname'=> 'респ.'),
            array('id' => 2, 'name' => 'Край', 'shortname'=> 'к-1.'),
            array('id' => 3, 'name' => 'Область', 'shortname'=> 'обл.'),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function regionsAction(){
        $editable_array = array('code' => 'Код субьекта РФ', 'region_type' => 'Тип региона', 'name' => 'Название', 'description' => 'Описание');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'code' => '1', 'region_type' => 1, 'name' => 'Республика Адыгея', 'description'=> ''),
            array('id' => 2, 'code' => '2', 'region_type' => 1, 'name' => 'Республика Башкортостан', 'description'=> ''),
            array('id' => 3, 'code' => '3', 'region_type' => 1, 'name' => 'Республика Бурятия', 'description'=> ''),
            array('id' => 4, 'code' => '4', 'region_type' => 1, 'name' => 'Республика Алтай', 'description'=> ''),
            array('id' => 5, 'code' => '5', 'region_type' => 1, 'name' => 'Республика Дагестан', 'description'=> ''),
            array('id' => 6, 'code' => '6', 'region_type' => 1, 'name' => 'Республика Ингушетия', 'description'=> ''),
            array('id' => 7, 'code' => '7', 'region_type' => 1, 'name' => 'Кабардино-Балкарская Республика', 'description'=> ''),
            array('id' => 8, 'code' => '8', 'region_type' => 1, 'name' => 'Республика Калмыкия', 'description'=> ''),
            array('id' => 9, 'code' => '9', 'region_type' => 1, 'name' => 'Республика Карачаево-Черкесия', 'description'=> ''),
            array('id' => 10, 'code' => '10', 'region_type' => 1, 'name' => 'Республика Карелия', 'description'=> ''),
            array('id' => 11, 'code' => '11', 'region_type' => 1, 'name' => 'Республика Коми', 'description'=> ''),
            array('id' => 12, 'code' => '12', 'region_type' => 1, 'name' => 'Республика Марий Эл', 'description'=> ''),
            array('id' => 13, 'code' => '13', 'region_type' => 1, 'name' => 'Республика Мордовия', 'description'=> ''),
            array('id' => 14, 'code' => '14', 'region_type' => 1, 'name' => 'Республика Саха (Якутия)', 'description'=> ''),
            array('id' => 15, 'code' => '15', 'region_type' => 1, 'name' => 'Республика Северная Осетия-Алания', 'description'=> ''),
            array('id' => 16, 'code' => '16', 'region_type' => 1, 'name' => 'Республика Татарстан', 'description'=> ''),
            array('id' => 17, 'code' => '17', 'region_type' => 1, 'name' => 'Республика Тыва', 'description'=> ''),
            array('id' => 18, 'code' => '18', 'region_type' => 1, 'name' => 'Удмуртская Республика', 'description'=> ''),
            array('id' => 19, 'code' => '19', 'region_type' => 1, 'name' => 'Республика Хакасия', 'description'=> ''),
            array('id' => 20, 'code' => '20', 'region_type' => 1, 'name' => 'Чувашская Республика', 'description'=> ''),
            array('id' => 21, 'code' => '21', 'region_type' => 2, 'name' => 'Алтайский край', 'description'=> ''),
            array('id' => 22, 'code' => '22', 'region_type' => 2, 'name' => 'Краснодарский край', 'description'=> ''),
            array('id' => 23, 'code' => '23', 'region_type' => 2, 'name' => 'Красноярский край', 'description'=> ''),
        );
        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function locationtypesAction(){
        $editable_array = array('shortname' => 'Сокращение', 'name' => 'Название');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Город', 'shortname'=> 'г.'),
            array('id' => 2, 'name' => 'Поселок городского типа', 'shortname'=> 'п.г.т.'),
            array('id' => 3, 'name' => 'Рабочий посёлок', 'shortname'=> 'р.п.'),
            array('id' => 4, 'name' => 'Курортный посёлок', 'shortname'=> 'к.п.'),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function streettypesAction(){
        $editable_array = array('shortname' => 'Сокращение', 'name' => 'Название');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Аллея', 'shortname'=> 'алл.'),
            array('id' => 2, 'name' => 'Бульвар', 'shortname'=> 'бул.'),
            array('id' => 3, 'name' => 'Проезд', 'shortname'=> 'п-зд.'),
            array('id' => 4, 'name' => 'Переулок', 'shortname'=> 'пер.'),
        );
        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function sextypesAction(){
        $editable_array = array('shortname' => 'Сокращение', 'name' => 'Название');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Мужской', 'shortname'=> 'м'),
            array('id' => 2, 'name' => 'Женский', 'shortname'=> 'ж'),
        );
        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function commandertypesAction(){
        $editable_array = array('name' => 'Название', 'priority' => 'Приоритет');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Командир', 'priority'=> 1),
            array('id' => 2, 'name' => 'Начальник', 'priority'=> 2),
            array('id' => 3, 'name' => 'Ответственный исполнитель за обработку корреспонденции', 'priority'=> 3),
        );
        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function periodtypesAction(){
        $editable_array = array('name' => 'Название');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'День'),
            array('id' => 2, 'name' => 'Месяц'),
            array('id' => 3, 'name' => 'Год'),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;

    }

    public function enumerationtypesAction(){
        $editable_array = array('name' => 'Название', 'mask' => 'Маска', 'isPeriodic' => 'Признак переодичности сброса',
            'period_type' => 'Тип переода для сброса счетчика', 'period_length' => 'Длительность периода', 'start_date' => 'Начало действия',
            'min_index' => 'Стартовое значение при сбросе', 'isDraft' => 'Черновик');
        $prototype_array = array('editable_properties' => $editable_array);
        $data_array = array(
            array('id' => 1, 'name' => 'Черновики', 'mask' => 'Ч%y-%n', 'isPeriodic' => true, 'period_type' => 3,
                'period_length' => 1, 'start_date' => '01.01.2014','min_index' => 0, 'isDraft' => ''),

            array('id' => 2, 'name' => 'Исходящие документы', 'mask' => 'И%y-%n', 'isPeriodic' => true, 'period_type' => 3,
                'period_length' => 1, 'start_date' => '01.01.2014','min_index' => 0, 'isDraft' => ''),

            array('id' => 3, 'name' => 'Секретные', 'mask' => 'С%y-%n', 'isPeriodic' => true, 'period_type' => 3,
                'period_length' => 1, 'start_date' => '01.01.2014','min_index' => 0, 'isDraft' => false)
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function doctypegroupsAction(){
        $editable_array = array('name' => 'Название', 'shortname' => 'Краткое обозначение (КОД)', 'isService' => 'Служебный документ');
        $prototype_array = array('editable_properties' => $editable_array);

        $combat = array(
            array('id' => 1001, 'parent_id' => 100, 'name' => 'Общевойсковые', 'shortname'=> 'ПБ', 'isService' => false),
            array('id' => 1002, 'parent_id' => 100, 'name' => 'Индивидуальные', 'shortname'=> 'ПХ', 'isService' => false)
        );

        $economic = array(
            array('id' => 1101, 'parent_id' => 110, 'name' => 'Персонал', 'shortname'=> 'ПБ', 'isService' => false),
            array('id' => 1102, 'parent_id' => 110, 'name' => 'Материальная часть', 'shortname'=> 'ПХ', 'isService' => false)
        );

        $child_1 = array(
            array('id' => 100, 'parent_id' => 2, 'name' => 'Боевые', 'shortname'=> 'ПБ', 'isService' => false,
                'childNodes' => $combat),
            array('id' => 110, 'parent_id' => 2, 'name' => 'Хозяйственные', 'shortname'=> 'ПХ', 'isService' => false,
                'childNodes' => $economic)
        );

        $data_array = array(
            array('id' => 1, 'parent_id' => null, 'name' => 'Сигналы', 'shortname'=> 'С', 'isService' => false),
            array('id' => 2, 'parent_id' => null, 'name' => 'Приказы', 'shortname'=> 'П', 'isService' => false,
                'childNodes' => $child_1),
            array('id' => 3, 'parent_id' => null, 'name' => 'Служебные', 'shortname'=> 'сист.', 'isService' => true,),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function docsecrecytypesAction(){
        $editable_array = array('name' => 'Название', 'shortname' => 'Краткое обозначение (КОД)', 'singleNumeration' => 'Единая нумерация');
        $prototype_array = array('editable_properties' => $editable_array);

        $data_array = array(
            array('id' => 1, 'name' => 'Для Служебного Пользования', 'shortname'=> 'ДПС', 'singleNumeration' => false),
            array('id' => 2, 'name' => 'Секретно', 'shortname'=> 'С', 'singleNumeration' => true),
            array('id' => 3, 'name' => 'Совершенно Секретно', 'shortname'=> 'СС', 'singleNumeration' => true),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function docurgencytypesAction(){
        $editable_array = array('name' => 'Название', 'shortname' => 'Краткое обозначение (КОД)');
        $prototype_array = array('editable_properties' => $editable_array);

        $data_array = array(
            array('id' => 1, 'name' => 'Не срочно', 'shortname'=> 'НС' ),
            array('id' => 2, 'name' => 'Очень Срочно', 'shortname'=> 'ОС'),
            array('id' => 3, 'name' => 'Супер Срочно', 'shortname'=> 'СС'),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        $current_id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        if($current_id){
            $data_array = $this->searchArray($data_array, $current_id);
        }

        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function doctypesAction(){
        /*
         * Генерируется из таблиц DocTypeGroupContent и DocTypeGroups
         * */

        $editable_array = array('name' => 'Название', 'shortname' => 'Краткое обозначение (КОД)', 'code' => 'Код',
        'header' => 'Заголовок', 'isService' => 'Служебный', 'secrecy_type' => 'Секретность', 'urgency_type' => 'Срочность');
        $prototype_array = array('editable_properties' => $editable_array);

        $data_doc_type_contents = array(
            array('id' => 1, 'doc_type_id' =>  1, 'doc_group_id' => 1),
            array('id' => 2, 'doc_type_id' =>  2, 'doc_group_id' => 110),
            array('id' => 3, 'doc_type_id' =>  3, 'doc_group_id' => null),
        );

        $data_array = array(
            array('id' => 1, 'doc_group_id' => array(1001, 1002), 'name' => 'Воздушная тревога', 'shortname'=> 'С-ВТ', 'code' => '555',
                'header' => 'Воздушная тревога!', 'isService' => false, 'secrecy_type' => 2, 'urgency_type' => 3),
            array('id' => 2, 'doc_group_id' => 110, 'name' => 'Приказ на списание', 'shortname'=> 'ПхСп', 'code' => '1001',
                'header' => '', 'isService' => false, 'secrecy_type' => 1, 'urgency_type' => 1),
            array('id' => 3, 'doc_group_id' => null, 'name' => 'Добавление объекта картографии', 'shortname'=> 'СК-Д', 'code' => '2001',
                'header' => 'Добавление объекта на общую карту', 'isService' => true, 'secrecy_type' => 1, 'urgency_type' => 1),
        );

        $request = $this->getRequest();
        if ($request->isXmlHttpRequest() and $this->getRequest()->isPost()){
            $query = $request->getContent();
            $data_array = $this->instantSearch($query, $data_array);
        }

        /* <REST> ------  */
        $data_array = $this->restApi($data_array);
        $response = array('response'=> true, 'prototype' => $prototype_array, 'data' => $data_array);
        /* </REST> ------  */

        $JsonModel = new JsonModel();
        $JsonModel->setVariables($response);
        return $JsonModel;
    }

    public function restApi(array $data_array, $query =null){

        $id = $this->getEvent()->getRouteMatch()->getParam('id', 0);
        $property = $this->getEvent()->getRouteMatch()->getParam('property', 0);
        $sub_action = $this->getEvent()->getRouteMatch()->getParam('sub_action', 0);

        /*
            echo 'current_id='.$id."\n";
            echo 'current_property='.$property."\n";
            echo 'current_sub_action='.$sub_action."\n";
        */

        if($id){
            //echo "\nid\n";
            if($sub_action){
                //echo "sub_action\n";
                switch($sub_action){
                    case('search'):
                        //echo "case_search\n";
                        return $this->searchArray($data_array, $id, $property);
                    break;
                    case('check'):
                        return $this->checkArray($data_array, $id, $property);
                    break;
                    case('dependency'):
                        //return $this->searchDependencies($data_array, $query, $property);
                        //echo "\n what's wrong with dependency?\n";
                    break;
                }
                //echo "case not found\n";
                return $this->searchArray($data_array, $id, $property);
            }
            return $data_array = $this->searchArray($data_array, $id);
        }

    }

    public function yesAction(){
        $data_array['response'] = true;
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($data_array);
        return $JsonModel;
    }

    public function noAction(){
        $data_array['response'] = false;
        $JsonModel = new JsonModel();
        $JsonModel->setVariables($data_array);
        return $JsonModel;
    }
}


text:
Seminar & Lecture Series
East Asia Blog Series
Observations & Suggestions
Wisdom of the East
Asia Needs Fleets of Buses to Get Vaccines to the World's Most Populous Region
Najibullah Habib 18 Nov 2021
Employees of enterprises stand in line to get vaccinated in front of a vaccination vehicle in Lingang Area, Shanghai, east PRC, March 26, 2021. Photo: Wang Xiang, Xinhua.
The PRC has shown how buses can be used to dramatically increase the number of people vaccinated against COVID-19. The region should follow their example.
They look like sleek, bright tour buses, some vaguely insect-like with long-necked rearview mirrors. But the people lined up outside them in the PRC aren't sightseers.
From Beijing in the north to Haikou in the southern island of Hainan; from Shanghai on the east coast to Xidu, Hunan and Wuhan, Chongqing, and Wuxi in the interior; and in many other towns and cities, the buses bring COVID-19 vaccinations to people who can't easily make the trip to sometimes inaccessible vaccination centers.
It's not just people living in remote mountainous areas such as Ouhai in Wenzhou, Zhejiang who benefit but also urban office workers, who don't have to take time off to get their shots, and the elderly and handicapped.
The buses are kitted out with vaccination stations, smart medical refrigerators that keep temperatures at 2–8°C and send an alert to the Chinese Center for Disease Control and Prevention if they deviate, and first-aid facilities in case of an adverse reaction. Vaccinated people are screened, registered, inoculated, and observed afterward. Regulators can monitor the information remotely.
A health worker takes COVID-19 vaccines out of the cooler in a mobile COVID-19 vaccination vehicle near Xidan business area in downtown Beijing, capital of the PRC, April 7, 2021. Photo: Zhang Yuwei, Xinhua.
The buses speed up inoculation, efficiently bringing millions of doses to downtown neighborhoods and more remote locales. The PRC has reason to make haste. Its population of about 1.4 billion is spread across more than 9.3 million square kilometers, including coasts and mountains and everything in between and some regions that are harder to get to than others.
In April, Nature reported that the country was vaccinating about 5 million people a day on average. In June, for more than a week, that number swelled to 20 million a day on average. As of 6 June, the journal stated, 778 million doses had been administered.
In the first week of October, according to Reuters, the average daily number of doses administered was about 1.42 million. A total of at least 2,218,826,000 doses, enough for about 79.4% of the population, have been administered.
A resident receives a dose of vaccine in a mobile COVID-19 vaccination vehicle near Xidan business area in downtown Beijing, capital of the PRC, April 7, 2021. Photo: Li Xin, Xinhua.
The news outlet said that the country has had 96,374 infections and 4,636 COVID-19–related deaths since the pandemic began in late 2019. New infections reportedly average 24 a day, or 1% of the highest daily average reported in February 2021.
The remarkable feat of vaccinating more than a billion people in less than two years was made possible by the decision to produce its own vaccines rather than rely on other countries and by getting the vaccines to its people efficiently. The vaccination buses are part of this logistically extraordinary achievement.
Health facilities have often been stretched to capacity, transport can be inefficient, and vaccination centers can be difficult to reach and expensive to build.
The buses speed up inoculation, efficiently bringing millions of doses to downtown neighborhoods and more remote locales.
Some other parts of Asia have been using vans and buses for health work. In the Philippines, for example, mobile x-ray machines serve tuberculosis patients, family-planning caravans have delivered contraception to communities, and now mobile clinics bring COVID-19 vaccination to cities and villages.
In September, Thailand rolled out its first vaccination bus, in Bangkok, which needs only six people to operate it and to inoculate 1,000 people a day. Pekanbaru, Indonesia launched its vaccination buses on 1 June and doubled their number to 10 within 2 weeks.
People wait in front of a coronavirus disease (COVID-19) mobile vaccination bus set-up to serve the elderly and disabled groups in Bangkok, Thailand, September 8, 2021. Photo: Juarawee Kittisilpa, Reuters.
In July, the Cambodia government delivered 10 vaccination vans to the defense ministry, which was already inoculating people, and promised one or two vans each to the provinces, depending on their population.
In India, the Karnataka government and the private sector launched the 4–6-month Vaccination on Wheels in August. In Fiji, Rights, Empowerment and Cohesion for Rural and Urban Fijians (REACH) Project buses started bringing vaccines to communities in early 2020.
Some of the least developed countries might not have the high technology that the PRC does, but they use the technology on hand to get the job done. Health workers can use cellphones to inform residents of mobile clinic arrivals, register vaccinees, remind them of vaccination schedules, and transmit information to government agencies. Smart refrigerators might not always be an option, but solar panels can keep the cold chain going.
The World Health Organization and United Nations Secretary-General António Guterres appealed to the leaders attending the 76th UN General Assembly, held in September, to ensure that poor and rich countries have equitable access to COVID-19 vaccines. An impassioned secretary-general called vaccine equity "the biggest moral test before the global community."
Continuing imbalanced access means not only that not enough vaccines are reaching the least developed countries but also that their health systems are deficient. Even if the countries were to receive more vaccines than they are, of what use would they be if they expire in warehouses or at ports because they cannot be distributed? Or, in the case of one brand, if they cannot be kept at minus 70°C?
To reach levels of success seen in the PRC, other countries need stronger health systems, more vaccines, and greater vaccine outreach.
WHO and the UN are right to be alarmed. Only 47.7% of the world's population has received at least one dose of the COVID-19 vaccine but only 2.5% of people in low-income countries.
Vaccination buses are just one solution and an effective one. They do traverse some countries, but not enough of them and in not enough countries. Imagine what fleets of them could do.
Najibullah Habib
Senior Health Specialist, East Asia Department, ADB
This blog is reproduced from Asian Development Blog.
Asian Development Bank Resident Mission
in the People's Republic of China
17th Floor, China World Tower A (Guomao III)
1 Jian Guo Men Wai Avenue
The People's Republic of China
+86 10 8573 0909, +86 10 8573 0808
rski@adb.org
Asian Development Blog
Development Asia
© 2022 Regional Knowledge Sharing Initiative. The views expressed on this website are those of the authors and presenters and do not necessarily reflect the views and policies of the Asian Development Bank (ADB), its Board of Governors, or the governments they represent. ADB does not guarantee the accuracy of the data in any documents and materials posted on this website and accepts no responsibility for any consequence of their use. By making any designation of or reference to a particular territory or geographic area, or by using the term "country" in any documents posted on this website, ADB does not intend to make any judgments as to the legal or other status of any territory or area.

redpajama_set_name: RedPajamaCommonCrawl


Plushie Assault is a shooter/endurance survival game about a girl named Lilith who accidentally brought all the stuffed animals in her neighborhood to life by reading a magical book. As the player, you take control of Lilith, and using a small arsenal of weapons, fend off the rampaging hordes of zombie plushies as they try to tear down your house! Plushie Assault is built around a high-score system where players compete with others on the internet to see who can claim fame of getting the highest score!
The game is hosted on Kongregate.com, and potentially other online gaming portals in the future. Click Here to play now for free!
For the story, and information on the characters Click Here!
Greetings generals! I am Queen Catherine von Conqueror the Fourth and I will conquer the world. Of course no conquering is successful without a good general. You will be my general! I-I mean I just think you will do a good job and serve my country Touria well so don't get the wrong idea!
The other countries have strong armies and well trained troops. But I do not care about that because I have a secret that they do not have fufufu! Dark knights will join Touria and I need your help to make them grow! Soon, our dark knight armies will overrun their pathetic countries and Touria will rule the world!
Will you join Touria and help me conquer the world? You will rule the world together with me!


Theoretically, our bodies make plenty of Vitamin D, the sunshine vitamin, when exposed to the sun. But today, people shy away from the sun, due to cancer concerns, or lather on the sunscreen. We spend too much time in homes, on the TV or the computer, and many of us work inside. All of this blocks the production of Vitamin D. So it's no surprise that three of every four Americans are deficient in Vitamin D!
Some people make ample amounts in the summer, but Vitamin D levels start to decrease when daylight savings time changes or when the sun is lower in the horizon. Sun is too low during winter months to even stimulate your body's production of D.
Vitamin D is a fat soluble vitamin that works along with Vitamin A to utilize calcium and phosphorus to build bones and teeth. Although we call it a vitamin, it really is a hormone produced by the sun. Deficiency results in nearsightedness, psoriasis, soft teeth, muscle cramps and tics, slow healing, insomnia, nosebleeds, fast heartbeat, arthritis and osteoporosis. Vitamin D also helps with all eye problems including eye spots, conjunctivitis, and glaucoma.
Vitamin D is needed for normal insulin function and regulation of blood sugar. It also helps prevent foot infections, which studies show, can come from low levels of Vitamin D.
In obesity, Vitamin D is stored in fat tissue which prevents it from being used by the rest of the body. Therefore those individuals are at high risk for deficient Vitamin D.
Higher Vitamin D gives many women an edge to surviving breast cancer and decreases in tumor size.
Low Vitamin D contributes to Multiple Sclerosis (MS). MS seems to be higher in people living further away from the equator.
Studies have found that Vitamin D supplementation lowers senior's risk of bone fracture, suggested dose of 2,000 IU's or more daily.
Evidence has been mounting that Autism and Vitamin D are linked, since "D' regulates thousands of genes in the human genome. Possibly a part of today's Autism epidemic!
Therapy with Vitamin D is associated with a lowered risk of mortality among those with Kidney disease.
In Osteoporosis, the role of Vitamin D in skeletal maintenance is very important and helps absorption of calcium. Also eating foods high in Vitamin D like avocados, salmon, sardines, milk and greens are very helpful.
Dr. Lars Reynmark of Denmark wrote that Vitamin D deficiency affects risks of many different diseases. Supplementation can become a necessity if or until the body can produce it by itself. Recent studies found taking 2,000 IU of D3 daily was not sufficient for many to boost levels to normal ranges. In most cases 5,000 IU resulted in much better success.
D3 is better absorbed than D2, and actually D2 can lower your level of D3 even more! I recommend taking D3 in liquid form or in a homeopathic sublingual tablet to make sure it gets into the system. Others prefer the capsule or tablet which may take longer to break up in the body. For myself, I prefer the homeopathic form of D3 in 5000 IU's daily.


text:
Q: Meaning of cookie in browser I found that the cookie in browser is a random string which web server sends to each client for remembering users' information purpose. But I don't understand in programmers viewpoint, what does cookie use for?
For example, I've used EditThisCookie extension in Chrome Browser to read wikipedia.org site's cookie, in the following picture included here. The value of this cookie (sessionId) is useless for programmers (EDIT: I mean I don't extract any information from this cookie, I know the cookie is very important for web developers, so sorry about my poor expression). If I get this cookie, which kind of information I can understand about the users?
Looking for some help! Thank you very much!
The example about cookie
http://i102.photobucket.com/albums/m86/dienkun1/cookie_example_zps455f0dad.png
EDIT: Sorry, I've just expressed my problem in wrong way.
Actually, I am going to write an extension for collecting users' preferences via users' cookie, but I can't understand anything what information can be extracted from cookie. I've read about cookie in many documents, like wikipedia, and all of them just show how to get cookie, the definition of cookie, classified... and nothing about which information we can get from cookie.
Thank you very much!

A: Why do you say that the sessionId is useless for programmers? It actually can be extremely useful. Somewhere on Wikipedia's servers, they're probably storing quite a bit of information about your session. This could include things like whether you've already hidden one of their fundraising banners (so that it won't keep showing it to you again and again), to things that are required for basic functionality, such as what user you are currently logged in as.
However, Wikipedia is storing this same information for millions of sessions. It needs a way to tie the information back to each individual browser. That sessionId is how it does so. It set the sessionId in a cookie when you first accessed the page, and that cookie gets sent back to the server with every request you make to it now. Then they have code on the back end that reads that sessionId from the cookie and uses it to look up all of the information specific to your session, and do whatever needs to be done with it.
You could of course store the session information itself in the cookies, but there are a couple problems with that. First, there are limits on the size of each cookie, and on the overall size of all cookies for a single domain. Some of the data you want to store might not even fit. But the bigger problem is that cookies can be very easily manipulated by the end user. If you stored the information of who the user is logged in as in a cookie, the user could just change that value to something else, and suddenly be logged in as someone else! Of course, it's also possible that the user could change their sessionId to be some other user's session and suddenly be logged in as them. That's why session IDs need to be as random as possible, and should be long enough that guessing someone else's is basically impossible.

A: Well, why would someone bother writing a sessionId to a cookie if it's useless?
Cookies are extremely useful when it comes to (e.g) identifying users on your site so you can have them logged in right away, count their visits, track them on your site and even beyond.. only to name a few use cases.
To cite a somewhat popular site (wikipedia.org):

Cookies were designed to be a reliable mechanism for websites to remember stateful information (such as items in a shopping cart) or to record the user's browsing activity (including clicking particular buttons, logging in, or recording which pages were visited by the user as far back as months or years ago).

The most important word here is "stateful".

redpajama_set_name: RedPajamaStackExchange


text:
My Favorite TV Comedies
Posted in Biography, Favorites, Miscellaneous, tagged censorship, fantasy, Hollywood, imaginative fiction, marriage, New York, restaurants, United Kingdom, video, witchcraft on June 28, 2012| 47 Comments »
…and now for something completely different. – John Cleese
Yesterday I shared my favorite TV dramas with you, and today I'd like to do the same with my favorite TV comedies; at the end there's a bonus list of my two favorite documentary series, which obviously wasn't long enough for a column of its own. Just as I did yesterday I've embedded videos of each show, with one exception (as you'll see below). Like yesterday's, this list is arranged alphabetically.
1) The Addams Family Charles Addams had been doing his macabre cartoons for The New Yorker for over twenty years when a television producer decided they would make a clever television show. Unlike the characters in the rival show The Munsters, the Addams family (named for the cartoonist) were not comical takeoffs on Universal movie monsters, but rather oddballs who were just plain weird rather than monstrous; that weirdness allowed them to get away with a great deal that other contemporary shows could not. For example, Mr. and Mrs. Addams were the very first TV couple who were not only sexually interested in one another on-camera, but passionately interested. It's been one of my favorites since I first encountered it in afternoon reruns in the mid-1970s.
2) The Adventures of Pete and Pete Like the Addams family, the Wrigleys are just a little bent, but unlike the Addams most of their neighbors (many played by unexpected celebrities like Iggy Pop or Patty Hearst) are equally strange. The show was originally a series of one-minute shorts which aired between shows on children's cable network Nickelodeon in 1989 (here are the first two, "What Would You Do for a Dollar?" and "Freeze Tag"); they proved so popular the creators were asked to create a series of 30-minute specials and later a whole series. The stories, especially in the first two regular seasons, achieve a rare mixture of hilarity and poignant sweetness that isn't quite like anything else.
3) Bewitched There were quite a few fantasy situation comedies in the 1960s, but this was the best and most enduring of them; I was five years old when it finally went off the air, and it's been in nigh-constant syndication ever since. The lovely Elizabeth Montgomery played a witch married to a mortal, and the friction between the two worlds (most often in the person of her interfering mother) created an endless number of comical situations which rarely fail to amuse and are often hilarious. One of the show's greatest strengths was its masterful use of character actors appearing as witches and other magical beings, animals or monsters in human form, or even historical personages summoned into the present by errant spells.
4) The Bullwinkle Show This show was originally named Rocky and His Friends, but after Rocky's sidekick Bullwinkle became the more popular character, the title was changed for the fourth season and used for all the seasons in syndication. The show aired in the evenings, and like the classic Warner Brothers theatrical cartoons was intended for adults. But for some reason I've never quite understood Americans collectively decided in the mid-1960s that cartoons were "kid stuff", and that attitude persisted until the advent of The Simpsons in 1989. Bullwinkle's producer, Jay Ward, was among the first to prove that by use of crude, limited animation held up by funny scripts and talented voice actors, a quality cartoon could be produced at a very reasonable cost; though it's doubtful that any television show has ever been animated more crudely, it's equally doubtful that any has ever been as funny, clever and sly.
5) Fawlty Towers John Cleese stars as Basil Fawlty, a rude, incompetent and self-important innkeeper whose schemes to improve his business, keep the riff-raff out and stay out of trouble with his shrewish wife lead to twelve of the funniest half-hours ever committed to videotape. There aren't many shows that can make me laugh so hard I literally cry, but this is one.
6) The Good Life This British sitcom premiered the same year (1975) as Fawlty Towers, but they're not very much alike; though this series (which was broadcast in the US as The Good Neighbors) is very funny, its humor is cuter and more gentle than the manic hilarity of Fawlty. The story follows an engineer who decides to get out of the rat race by quitting his job and taking up farming…in the upscale London suburb of Surbiton, much to the consternation of his good-natured but snobbish neighbors.
7) Green Acres No, I'm not obsessed with shows about successful men who quit the rat race to become farmers; honestly I'm not. Besides, the hero of this show is a lawyer, and instead of farming in the suburbs he moves to a very weird rural town whose inhabitants make the eccentric population of Pete & Pete's Wellsville look like models of sanity in comparison. Even the laws of nature here seem to work in a more surreal fashion, and on more than one occasion characters are able to read credits, hear incidental music and otherwise break the fourth wall.
8) Making Fiends This is a web cartoon created by the astonishingly talented Amy Winfrey; it's absolutely one of the funniest things I've ever seen while still being 100% "clean" and incredibly charming. She did six half-hour shows for Nickelodeon in 2008, but the originals are still online and pack more laughs into a few minutes than most sitcoms can generate in several episodes.
9) Monty Python's Flying Circus As with Star Trek and Twilight Zone yesterday, I honestly don't think I can say anything useful about this landmark series in the space I have to work with. The influence of this bizarre, zany, irreverent, erudite and wholly original sketch comedy show on everything that has come after it is incalculable; even our use of the word "spam" to mean junk email derives from a Python sketch depicting a diner in which Spam (the meat) is served with every single dish whether one wants it or not.
10) Red Dwarf Imagine a science fiction show that totally succeeds as a comedy, or a hilarious comedy which is better science fiction than the majority of shows in that genre, and you've got Red Dwarf. A perennial loser is placed in stasis for violating ship's rules and emerges 3,000,000 years later to find the entire crew was killed in a radiation accident soon after he was frozen; his only companions are the ship's computer, a hologram simulation of the dead bunkmate he couldn't stand, and a humanoid creature who evolved from the ship's cat. Hijinks ensue.
My Favorite TV Documentaries
1) Connections Veteran journalist James Burke examines the interdependence of technology by demonstrating how each new discovery leads to wholly unpredictable effects that trigger change in apparently-unrelated areas; in each episode he takes one ancient or medieval development (such as the stirrup or the water wheel) and demonstrates how it set off a series of interlinked events leading to the development of a major technological device of the modern world (such as computers or nuclear weapons). Sound interesting? You can watch the first episode, "The Trigger Effect", in its entirety right here.
2) Cosmos Three decades of cable TV networks wholly dedicated to documentaries still haven't produced a science show as interesting or entertaining as Carl Sagan's 1980 magnum opus, which is why it's still highly regarded today despite the fact that a little (though not much) of its science is now dated. In a way this show and Connections were inspirations for this blog, because both of them showed me it was possible to be informative and entertaining at the same time. I also have Cosmos to thank for introducing me to the music of Vangelis, one of my favorite musicians.
Today's puzzle: One of today's series and three of yesterday's feature main characters who appear in every episode (or nearly so), despite the fact that they're already dead by the end of the first episode. How many more can you think of?
In "A Decent Boldness" we make the acquaintance of Aella, an Amazon of the mythic past who finds herself stranded on the far side of the world, broke and unable to speak the language, and has to figure out how she's going to survive.


text:
Lönnberg är ett svenskt efternamn som också har skrivits Lönnbergh. Den 31 december 2013 var 926 personer bosatta i Sverige med efternamnet Lönnberg, medan ingen hade stavningen Lönnbergh.

Personer med efternamnet Lönnberg eller Lönnbergh
 Anders Lönnberg (född 1954), socialdemokratisk sjukvårdspolitiker, civilekonom
 August Lönnberg (1856–1930), arkitekt
 Carl Lönnberg (1828–1905), lantbrukare och riksdagsman
 Einar Lönnberg (1865–1942), zoolog
 Gustav Lönnbergh (1911–1980), flygare och sjökapten
 Ivan Lönnberg, flera personer
 Ivan Lönnberg (arkitekt) (1882–1965)
 Ivan Lönnberg (konstnär) (1891–1918), bildkonstnär och långdistanslöpare
 Lars Johan Lönnberg (1816–1889), jurist och riksdagsman
 Mathilda Lönnberg (1837–1907), författare
 William Lönnberg (1887–1949), finländsk målare
 Åke Lönnberg(1919–2005), officer i flygvapnet

Källor

Svenska efternamn

redpajama_set_name: RedPajamaWikipedia


Barack Obama is expecting to battle President Donald Trump in 2020. The past president can't stand being sidelined. He just dazed different potential Democratic presidential contenders like Senators Kamala Harris and Corey Booker after he was gotten in a riddle meeting in his Foggy Bottom work environments about the 2020 race. A considerable amount of what happened in that social event has been spilled to the press, and it will blow your mind.
For what reason can't Barack Obama basically leave like more good past presidents? As we just laid George H.W. Greenery to rest, Americans esteemed that after he lost a tight race against Bill Clinton, the 41st president surrendered from authoritative issues. In spite of the way that the Clintons passed on a smudged devices campaign, Bush '41 declined to squander them therefore.
When I walked around this office seconds prior I felt a comparable sentiment of contemplate and respect that I felt four years back. I understand you will feel that, too.
I wish you amazing euphoria here. I never felt the gloom a couple of Presidents have delineated.
There will be extraordinarily outrageous events, made impressively more troublesome by criticism you may not accept is sensible. I'm not an OK one to give admonishment; yet rather basically don't allow the analysts to dampen you or push you off center.
You will be our President when you examined this note. I wish you well. I wish your family well.
Your thriving by and by is our country's flourishing. I am pulling hard for you.
For the people who don't' recall, the Clintons savage messy snares crusading style was culminated on Bush '41. Everything considered, the late president said it was critical he support his successor. It was to help the country. Tragically, that sort of quietude beginning from past presidents was gone from Washington after his tyke, Bush '43, left.
That passes on us to Barack Obama and his progressing filthy traps. The 57-year-old past system organizer is coming back to his hidden establishments. He was gotten in a riddle getting setting together his method to take out President Trump in 2020.
Also, you'll never consider will's identity Obama's choice. Everything considered, clearly, the one beta male who is so smooth and sickening that he motivated enormous Democratic providers to discharge millions into his missing the mark senatorial fight: Beto O'Rourke.
As shown by a report by the Washington Post, the past Democratic candidate who lost his choice for Senate against Sen. Ted Cruz, R-Texas, met unpretentiously with Obama at his Foggy Bottom work environments on November sixteenth.
Congressman Beto O'Rourke, whose failed Senate try shot him to Democratic distinction, has met with past President Barack Obama to discuss a 2020 presidential offer, it has been revealed.
The social affair happened Nov. 16 – under around fourteen days after the midterm race – at the past president's work environments in Washington D.C., The Washington Post itemized.
O'Rourke may have lost to Republican Sen. Ted Cruz on Election Day – and will be jobless as of Jan. 3 when the new Congress is affirmed – yet he has begun more presidential hypothesis than most.
Democrats refered to his extraordinary $70 million fund-raising hallway nearby his use of electronic long range informal communication that made him a national wonder.
Genuinely, Barack has taken an unrestrained to Beto. The liberal media's friendship fest with Robert Francis O'Rourke is directly add up to as they have named him "the accompanying Barack Obama." And in any occasion that is not entirely substantial. Beto O'Rourke has no comprehension to be dog catcher, much like Obama had basically zero association to twist up president in 2008.
Thoughtful, the Hollywood gathering is hit with Beto, too. They think, as Obama, that he could influence the country to wind up pitifully captivated with him. In addition, much equivalent to the 44th president, Beto is comparably as perilous. The failed senatorial cheerful is for open edges, higher evaluations, against Second Amendment, and requirements to continue where Obama left off in changing America into a socialist state.
Might he have the capacity to get an open door against Trump? Nope, not by any stretch of the creative ability. In any case, his supporters will exhaust millions into his fight. The Democrats are hellbent to recoup the organization, and they are right as of now plotting and orchestrating how to do that from each point.
Expelling voter ID laws will be a noteworthy issue for the Democrats. They will tie the president up in boundless examinations in the House of Representatives. Additionally, Barack Obama will fasten hands on the front line with Robert Francis "Beto" O'Rourke.


Simple Lower Third is a broadcast quality, professional grade, corporate lower third designed for video editors. Add style to your video projects with this colorful animated lower third. Text layers are just in the preview. You can use any text/font you like.
This is not a project file but a RENDERED video file at Full HD resolution 1920×1080, Quicktime PNG with alpha. You get a pack of 8 different colors (dark blue, red, green, black, white, blue, pink and yellow) each 10 seconds long (shortened in the preview, except the first one).
It includes alpha channel, therefore you just import the lower third file in your favorite video editing application and overlay over your video in the timeline then add the text and logo.
Please take a moment to rate if you like it. Thank you!


text:
In Memoriam: Rev. Neal Punt
News, In Memoriam
Janet A. Greidanus
Neal Punt of Grand Haven, Mich., passed away peacefully on October 18 at the age of 87.
Punt graduated from Calvin College, Calvin Theological Seminary, and did postgraduate work at Westminster Seminary. He was ordained in 1954 and went on to serve the following Christian Reformed congregations: Atwood (Mich.) CRC; Eastmanville (Mich.) CRC; Prairie Edge CRC in Portage, Mich.; and Evergreen Park (Ill.) CRC. The churches Punt served appreciated his Christ-centered leadership, biblically-based sermons, and the friendship he endeared them with. He served on many boards for the denomination. He retired in 1994.
In addition to being a pastor, Punt was an author of Baker's Textual and Topical Filing System for clergy, as well as several books on biblical universalism, a topic he studied, researched, and struggled with for many years.
Punt was also an inventor. His first invention was the Music-Minder: a record holder in a wooden cabinet made by Imperial Furniture Company, which sold in many furniture stores. One time, while posing as a potential buyer, the salesperson told Punt the Music-Minder was invented by some "crackpot preacher." Punt left without revealing his identity, but he loved telling the story. He also made an appearance on QVC, a home shopping television show, to sell one of his other inventions, a bread slicer.
Punt enjoyed fishing, gardening, and sailing. He had a great sense of humor, which his family says he kept until the end.
Punt is survived by Betty, his wife of 64 years; their children Jan and Bill Buikema, Jim and Gail, Beth and Dave Huisenga, Gordon and Meg, Laura and Mike Stoub, daughter-in-law Sue Punt; and by 13 grandchildren and one great-grandson. He was preceded in death by his eldest son, Gary, in 2015.
Janet Greidanus is a freelance news correspondent for The Banner. She lives in Edmonton, Alberta.
See comments (1)
bill wald replied on Mon, 01/30/2017 - 7:52pm
Rev. Punt is the only Reformed writer who has made any logical sense out of the problem of the order of salvation. His book is available on Amazon. https://www.amazon.com/Theology-Inclusivism-Neal-Punt/dp/0945315465 See google for many hits about his analysis.
(From what I remember) Rev Punt was charged with heresy and cleared by Synod, then totally ignored.
In Memoriam: Rev. Neal Roger Rylaarsdam (1944-2020)


text:
Trapica Marketing SuiteQuollo Market ResearchOhNoo Cyber ProtectionBilbi for Small Businesses
E-CommerceConsumer AppsEnterpriseAgencyEducationPublisherMarketing Teams
Trapica SuggestPerformance MonitoringCompetitor Ad LibraryBlog
log in ↗
Instagram Now Allowing Users to Deny Access to Third-Party Data Usage
Trapica Content Team
In major news for advertisers, it seems Instagram is intent on allowing users more control over the data that's collected and shared. As a result, a new option is available in the settings regarding personalization with ads. If users have a problem with third-party data collection, they can choose to opt-out (although this undoubtedly will affect ad personalization).
For users, they'll access this setting through the 'Data From Partners' section of the app. If you have a marketing strategy spanning multiple platforms, you'll know that this was also an addition to Facebook earlier in 2020. Now, Instagram is following in the same footsteps. By opting out of partner-sourced data, users don't receive personalized ads.
Over the years, Instagram has tried to deliver relevant ads to users. However, it went beyond using data from Facebook and Instagram by also gathering data from other websites and apps. Ultimately, the goal was to gather as much information about each user as possible to then deliver the right advertisements. Facebook has done the same in the past with SDK and various other platforms.
Recently, Instagram as a whole has moved towards the ecommerce market, and so these insights have increased in value. Businesses both generate direct app sales and retarget using off-platform data (both transactional and browsing data). With this, the demand for advanced customer tracking has rapidly increased. Therefore, the question of how users are being targeted and how off-platform activity is monitored has been at the core of many debates.
Compared to before, users now have more control over how they're tracked. We've all been shocked at how accurate social media apps are with their ad experiences; sometimes, it seems like we express an interest in a topic once and suddenly we're seeing ads for it everywhere. Those concerned now have options to opt-out of this data collection and usage.
Don't worry, the industry isn't relying on guides like this to spread the news. Instead, Instagram will send a notification in the app to all users soon. As part of this, it will encourage users to check their settings, with a particular focus on the ad settings. If a user has already made this change on Facebook, it should transfer across to Instagram automatically.
As mentioned, ecommerce has grown exponentially during the COVID-19 pandemic, and this growth is expected to continue into 2021. With the early implementation of this setting, Instagram may hope that the number of people opting out is minimal. Either way, it's great news that users are getting more control, but it also has significant implications for businesses advertising on the platform.
Instagram Data Collection
With these changes coming to Instagram, it's important to consider the data policy of the social media platform. For both users and businesses, the following is collected to support the many Facebook products:
Provided Data
First and foremost, the easiest data for the platform to collect is the bits that we provide as users. When creating an account, for example, we have to enter our email address, name, and other details. After this, Instagram may collect location data from photos. In fact, this is an important source because metadata impacts the features offered by Instagram. Depending on your history and the data, the tool suggests specific filters and masks. There are laws in place to protect certain pieces of data; this includes political views, religious views, philosophical beliefs, and ethnic origin.
Secondly, Instagram collects data based on the habits of users. This section is all about our habits, the videos we watch, our actions, how long we spend consuming certain pieces of content, as well as the products we use from the brand.
Connections and Networks
In a similar way, Instagram gathers data regarding the hashtags and groups we use, the Pages we interact with, and even the device we use while performing these actions.
Information from Others
For some users, it's worrying to learn that Instagram can collect data about ourselves when we don't even provide it. That's right, other people can provide data about you when interacting with Instagram and other products. For example, another user might tag you in a picture or comment on one of your uploads.
Finally, anything you purchase through one of the Facebook products is also noted and helps to form the profile it has of you. Even when spending money in a game or donating to a cause, transactional information is stored. This includes billing information, contact details, and bank details.
As you've probably realized, these are all collected from the things we, or others, do. On the other hand, Instagram also collects data about us from the devices we use. This includes device operations, device attributes, signal, networks and connections, identifiers, cookie data, and device settings.
Aside from all this, and where this new setting really helps, is data collected from a third party. As users, we expect to have data collected when we're actively using a platform. We expect Instagram to collect data about our activity and even our device. For many, the problems arise when the platform uses data collected elsewhere.
According to Instagram, this third-party data comes from publishers, advertisers, app developers, and other sources. In many cases, it is the result of the Facebook Business Tools in use. Even with Facebook Login, the Facebook pixel, and other plugins, it helps Instagram to gather data about individuals.
While this can pertain to the devices used, it also covers visited websites, any purchases the individual makes, ad interactions, and more. For all users who don't want this data collected, Instagram users now have a choice to opt-out. Once selected, Instagram won't be able to target users based on this information, and the information can't be used to bulk up user profiles for advertising purposes.
Why Data Collection is Important
For users, it's impossible not to see the list above and worry about just how much information passes each day. With every click or tap, we leave a trail for both the platform and for advertisers on this platform. This being said, there are several reasons why social media websites like Instagram and Facebook collect all this data.
Above all else, information is often used to verify activity and the accounts of users. In the past, the very fact that Instagram has collected detailed information on users has helped to reduce harmful conduct in the community. Also, it's used to identify and then prevent spam and other negative content. When something goes wrong, it's this very data that Instagram relies upon to investigate the violation or suspicious activity. Sometimes, data even points to people who need help.
Data is also used for personalization, but it's not just with regards to ads that this happens. Personalization also takes place in our Instagram Feed and Stories. The more data collected by Instagram, the easier it is to provide content that we'll really enjoy. Also, data is used to recommend groups and pages that we might like.
For advertisers, data collection is essential, and it's one of the reasons why the Facebook/Instagram targeting system is so refined. Without all this data, it would be much harder to reach out to the right audience whenever needed. Advertisers need to find the people most likely to respond to an ad and buy a product.
Communication and Innovation
Lastly, Facebook and Instagram send marketing messages and other emails to users. Often, they both share news and inform of new policies, and this is made easier with data collection. The information is also used to innovate and continually improve the services that billions of people in the world enjoy. Innovation takes place across technological advancement, well-being, social welfare, health, and public interest topics.
Conclusion
Instagram now allows users to deny access to third-party data usage; while this will help some users to feel more secure online, it could also change the way we target as advertisers. At all times, it's important to be open with consumers, and this is clearly the approach from Instagram and Facebook with these added control features. All users will get a notification explaining how they can opt-out of third-party data usage, and it's important to plan for this.
Unfortunately, we don't yet know how popular this setting will prove to be, but it could definitely impact advertising. Suddenly, the files for a healthy chunk of consumers will get thinner because we can no longer rely on third-party data usage. On the other hand, as seen in a previous section, Instagram will still be gathering plenty of data itself and this should prevent a mass exodus away from the advertising platform.
The Trapica Content Team aims to share relevant industry news, marketing tips, and company updates to make sure our readers have the best info about digital marketing.
Budget Scale
What is Market Research? How Will it Help Me?
A Guide to Facebook's Automated Ad System
Google Combines Affinity and Intent into Audiences. What Does This Mean for Marketers?
7 SEO Techniques to Try in 2021 that Will Increase Traffic
Looking Back at 2020: Ecommerce Stats and Trends
Trapica AI Now Compatible with DSPs
Google Display Ads Introduces Automatic Targeting
4 Important Features of Facebook's New Business Suite
Using AI to Crack Your Facebook and Google Advertising Creatives
Trapica Insights
Discover valuable tips, tricks, and industry news with a specific focus on the role of artificial intelligence in social media advertising.
hello@trapica.com


"Free weather data" is limiting you from fully realizing your service and profit potential. The data via internet and mobile device is generic and ideal for general use. TruWeather's hyper-local forecasts are tailored for your location and objective. We work closely with clients in every stage of the project, giving strong support of weather applications, translation of data and logistical analysis.
New mobility technology will change the way individuals move, and how goods and services are delivered. Better weather data will provide more confidence in decision making in order to avoid losses due to weather delays and weather sensitive operations. Our business analytics takes away the confusion and misinterpretation against any irregular threats.
In 2017, the Event Safety Alliance determined out of 45 live event mishaps, 28 were due to or caused by weather. That's over 62%! TruWeather Solutions is leveraging over 40 years of our global forecasting experience and weather mitigation planning to help domestic and international outdoor concerts, venues, tours, productions, and sporting events become Weather ProActive instead of Weather Reactive.
TruWeather has an exclusive body of experience for servicing government entities….and here's why. Our team has real life experience, over 40 years combined within the military and civilian government, giving you a framework to reduce weather's impact in your day to day planning, response and recovery operations.
TruWeather Solutions (TWS) is a micro weather analytics and technology company with over 35 years' experience deep in aviation, logistics and weather services industries. TruWeather collects and translates diverse weather data sets, and through an analytics engine, translates weather data into targeted insights and actionable decisions for weather sensitive industries.
Terrain influenced wind speed and direction. Micro weather observations and predictions at sub-1,000 meter pixel resolution.
Through an analytics engine, we translate weather data into targeted insights and actionable decisions. Micro weather route risk and optimization capability derived from weather observations and predictions.
RESTful Web Services that are highly scalable.
Weather uncertainty increases cost and risk.
We rely on a collection of data sources available to describe characteristics of what is going on. Our proprietary models leverage GPU accelerators to increase resolution and update frequency.


text:
'It's madness': Parents lining up ahead of Monday school registration
While the wind chill hovered around minus 29, some parents began lining up outside Edinburgh School on Friday night. Registration opens Monday.
Jesse Feith, Montreal Gazette
Parents reportedly started waiting outside Royal Vale School in N.D.G. on Friday night, a practice that's been happening for decades. Seen in this picture is a lineup at Royal Vale in 2002. GORDON BECK / GAZETTE
When Alexandrea Struck's parents wanted to register their daughter at Edinburgh School in Montreal West, they lined up outside ahead of time to secure one of the coveted spots.
So about 30 years later, on Friday night, Struck couldn't help but feel for the parents she learned had started lining up outside the school — while the wind chill hovered around minus 29 C — ahead of registration opening Monday.
"It's madness," said Struck, whose two children attend the school. "The parents are so stressed, they're losing their minds. There's just so much uncertainty."
Struck said by 6 p.m. there were already eight names on the registration list kept outside the school. Neighbours were out supplying hot chocolates and offering access to their bathrooms and showers.
According to Struck, who's involved in efforts to solve the school's overcrowding problem, Edinburgh had to turn away 46 children last year. In that case, she said, the lineup for registration had started the night before.
Struck said the English Montreal School Board is yet to announce how many kindergarten classes there will be at Edinburgh next school year, so many parents have needed to start considering backup plans in case of rejection. With siblings getting priority as well, it's unclear how many spots will be left.
Parents had also reportedly started waiting outside Royal Vale School in N.D.G. on Friday night, a practice that's been happening for decades.
Both schools are part of the EMSB, which has been trying to solve overcrowding problems at some of its most popular West End French immersion schools.
Edinburgh is operating at 127 per cent capacity, Merton in Côte-St-Luc is at 107 per cent, and Willingdon in N.D.G. is 90 per cent full.
The school board has suggested opening a junior campus to solve the issue at Edinburgh, but more than 400 parents from the school signed a petition against the idea, pushing for modular classrooms instead.
jfeith@postmedia.com
Twitter.com/jessefeith
Parents at EMSB's Edinburgh School seek modular classrooms to ease overcrowding
EMSB won't open new school, but offers plan to ease West End overcrowding
Parents brave frigid temps to snag Royal Vale kindergarten spots
Dunlevy at Sundance: Two docs highlight the Israeli-Palestinian conflict Quebec announces $11 million in 'crucial' funding for FACE School


Mark your calendars to attend the highest rated polo tournament in North America! The annual Lucchese 40-Goal Polo Challenge to benefit the Polo Players Support Group (PPSG) returns to the International Polo Club Palm Beach (IPC) in Wellington, Florida, on Saturday, February 16, 2019! The Lucchese 40-Goal Polo Challenge is the marquee fundraising event of the PPSG, which provides financial assistance to seriously injured or ill players and grooms.
Enjoy a fun, casual charity event with great food and outstanding auction items in the Pavilion at International Polo Club on Saturday, February 16, 2019.