• Что добавить в конце строки при генерации QR кода чтобы считал сканнер?

    YarkoDzech
    @YarkoDzech Автор вопроса
    будучи трезвым, сдержи все свои пьяные обещания!
    Для некоторых ридеров нужно поменять X и Y. Swap X and Y modules
    Ответ написан
    Комментировать
  • Как в inversify JS без typescript на ES6 получить уже созданный инстанс объекта?

    YarkoDzech
    @YarkoDzech Автор вопроса
    будучи трезвым, сдержи все свои пьяные обещания!
    Разобрался
    container.bind(TYPES.Ninja).to(Ninja).inSingletonScope()
    Ответ написан
    Комментировать
  • Есть ли в Koa2 ограничение на размер свойства ctx.body?

    YarkoDzech
    @YarkoDzech Автор вопроса
    будучи трезвым, сдержи все свои пьяные обещания!
    Проблема решилась когда из проекта убрали koa-compress, самой проблемы не разбирали ибо и так в этом компрессе толку мало.
    Ответ написан
    Комментировать
  • Пара вопросов об SPA?

    YarkoDzech
    @YarkoDzech
    будучи трезвым, сдержи все свои пьяные обещания!
    1. В vue пока нет стандарта паттернов, но если по уму, то у приложения всегда должен быть один главный компонент. Компонентный подход ввобще очень гибкий и удобный. Для разных страниц (компонент) используйте роутер.
    Для состояния есть vuex или тот же хайповый redux

    2. Не совсем понятно кто что и кому отдает. У вас статику с сервера отдает ларка? Начиная с 2.3.3 прямо с коробки начал работать ssr (сервер сайд рендеринг), но там аккуратней присутствуют не все хуки жизненного цикла.
    Ответ написан
    Комментировать
  • Как раз и навсегда сохранить настройки iptables?

    YarkoDzech
    @YarkoDzech
    будучи трезвым, сдержи все свои пьяные обещания!
    yum install iptables-services
    iptables -F
    iptables-save | sudo tee /etc/sysconfig/iptables

    Все правила, ну например:
    iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
    ...

    iptables -L -n
    iptables-save | sudo tee /etc/sysconfig/iptables
    service iptables restart
    Ответ написан
  • Как обеспечить доступ к Redis только с определенных ip?

    YarkoDzech
    @YarkoDzech Автор вопроса
    будучи трезвым, сдержи все свои пьяные обещания!
    С какой-то там версии 3.2.х bind нескольких ip в конфиге не позволяет стартануть серверу.

    Поэтому вариант такой:

    1. В /redis.conf меняем
    bind 0.0.0.0 //открываем доступ к базе из вне
    *опционально меням порт против типо этого zmap -p6379 -o omg.txt
    очень рекомендовано прописать:
    requirepass nl6Cq8mthJrrXbqlDqLaPgtFkeq12zqB7Sb5j5UJ
    ну и очень рекомендовано отключить управление конфигом с командной строки:
    rename-command CONFIG ""

    После рестарта сервера, он по ip и порту должен смотреть наружу:
    redis-cli -h ваш_ip -p ваш_порт

    2. Прописываем правила для iptables
    Важно! Все правила идут в строгом порядке, поэтому желательно обнулить все правила, перезаписать файл с листом начисто. И пройтись заново и в том месте, где открываются порты 80, для SSH и ряд других прописать:

    iptables -A INPUT -p tcp -s y.y.y.y --dport хххх -j ACCEPT доступ с y.y.y.y ip на такой то порт

    повторяем правило для ip всех микросервисов что будут стучаться к redis
    открываем локальный интерфейс:

    iptables -A INPUT -i lo -j ACCEPT

    последним блокируем всё что не описано правилами и открываем исходящие пакеты:

    После этого можно заблокировать все остальное и разрешить все исходящие соединения.

    iptables -P OUTPUT ACCEPT
    iptables -P INPUT DROP

    После перезагрузки iptables и если всё правильно настроено порт должен быть только для нужных нам ip. А если следовать всем инструкциям, то даже если пакет и пролетит фаервол, он упрется в авторизацию и не сможет с командной строки сгенерировать ключ доступа к серверу.

    P.S Если всё пошло не так, обнуляется iptables так:
    iptables -F
    Ответ написан
    Комментировать
  • А есть плагин автокомплита для кода в Sublime3 как у VisualStudio?

    YarkoDzech
    @YarkoDzech Автор вопроса
    будучи трезвым, сдержи все свои пьяные обещания!
    Ну такое (ц).. себе решение, но как вариант пойдет

    Ставим codeIntel и JavaScriptNext - ES6 Syntax
    В Preferences->Package Settings-> SublimeCodeIntel в User или Defolt дописываем

    "codeintel_syntax_map":
        {
           "Python Django": "Python",
           "JavaScriptNext": "JavaScript",
        },


    98f6d65162f9438baaad5a4ca17eec26.jpg

    И даже на стандартных объектах начал что-то выхватывать:

    49a92007c8834d6b9dd25c7802b81a82.jpg
    Ответ написан
    Комментировать
  • Как получить данные с get запроса от клиента(Ajax), на сервере?

    YarkoDzech
    @YarkoDzech
    будучи трезвым, сдержи все свои пьяные обещания!
    По результатам переписки.
    Код который я даю не предназначен для использования! Это просто пример нативного ajax и асинхрона от nodejs. Вообще, нужно придерживаться хотябы rest и если что то летит на сервер, то обязательно с формы и post/put запросом. Get только для получения данных с сервера.
    И реквесты в ноде так не обрабатывают.
    И респонс, если прилетела кирилица, отправит назад отработку.
    Всё что написано ниже чисто для понимания сути.

    var simplePage = '<h1>тестовая отправка данных без формы</h1>'+
    '<hr><input type="text" id="txt">'+
    '<input type="button" id="button" value="отправить что-то">'+
    '<script>(function(){'+
    'var button = document.getElementById("button");'+
    'button.onclick = function(){var xhr = new XMLHttpRequest();'+
    'xhr.open("GET","/toserver/"+document.getElementById("txt").value, true);xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");'+
    'xhr.send();'+
    'xhr.onreadystatechange = function(){if(xhr.readyState == 4) alert(xhr.responseText)}}'+
    '})()</script>';
    var http = require('http');
    var server = http.createServer(function(req,res){
    	console.log(req.url);
    	if (req.url === '/') {
    		res.writeHead(200, {'Content-type' : 'text/html; charset=utf-8'});
    		res.write(simplePage);
    		res.end();
    	}
    	else{
    		res.writeHead(200, {'Content-type' : 'text/html; charset=utf-8'});
    		//res.write(simplePage);
    		res.end('вы отправили нам '+req.url.slice(10));
    	}
    });	
    server.listen(1333,function(){console.log('listen server at 1333')});
    Ответ написан
    2 комментария
  • Как правильно обновить данные в MongoDB?

    YarkoDzech
    @YarkoDzech
    будучи трезвым, сдержи все свои пьяные обещания!
    $push просто добавляет данные в массив
    $addToSet добавляет с заменой

    tag = ['four', 'five']
    db.collection.update({searchtags: "anything"}, {$push: {tag: ['one', 'two', 'three', 'four']}})
    tag = ['one', 'two', 'three', 'four', 'four', 'five']

    db.collection.update({searchtags: "anything"}, {$addToSet: {tag: ['one', 'two', 'three', 'four']}})
    tag = ['one', 'two', 'three', 'four', 'five']

    Через точку можно пушить прямо в подмасив массива.
    Ответ написан
    2 комментария
  • Как заставить Backbone понимать id mongodb?

    YarkoDzech
    @YarkoDzech Автор вопроса
    будучи трезвым, сдержи все свои пьяные обещания!
    Значит так.
    Согласно мыслей, которые описали товарищи выше.

    Исходя из условий что backEnd у нас принимающая сторона для изменений в базе и не более, то:

    Backbone GET
    через find() получаем стек документов, дальше через foreach пакуем каждый документ ($example) (или определенные поля) в json попутно закинув туда id которое равно $example['_id']->__toString()

    Backbone POST
    при создании документа есть метод получения его _id:
    $example = $someCollection->insertOne(/../);
    $idExample = $example->getInsertedId();
    Запаковываем полученный только что $idExample в прилетевший нам json, тем же методом:
    $idExample->__toString()
    и отправляем json обратно на сторону backBone

    Backbone PUT и DELETE
    На сторону backEnd прилетает id в виде строки, перепаковываем строку в ObjectID
    $input = json_decode(file_get_contents('php://input'));
    $objId = new MongoDB\BSON\ObjectID($input->id);
    *штатного метода не нашел

    И уже по этому $objId апдейтим или удаляем документ

    В принципе.. для связки костыль с нескольких строк, без дополнительных бубнов с инкрементами или дополнительными запрос-апдейт.
    Ответ написан
    Комментировать