• Как сделать правильный shared проект?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Здравствуйте. То что вы спрашиваете - это тема для толстой книги например ))

    Я как раз сейчас очень интересуюсь такими решениями. Идея именно в том, что есть бэкэнд, фронтэнд, И ОБЩИЙ КОД.

    Общий код - это:

    * строгое объявление типов сообщений
    * определение процедур API с указанием их типов сообщений
    * абстракции форм для валидации инпута как на клиенте, так и на сервере
    * то, что в процессе разработки по каким-то причинам было перенесено с сервера на клиент или наоборот
    * что-то еще

    Идея очень близка к grpc и Метеору, но не оно.

    В общем есть много идей и даже наработок.

    Если интересно - предлагаю сконнектиться и пообщаться на эту тему, как насчет?
    Ответ написан
  • Как документировать API, общение клиента и сервера?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    raml.org
    Ответ написан
    Комментировать
  • Какие ресурсы для изучения SQL наиболее эффективны?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    > видео-уроки

    офф доки!
    Ответ написан
    Комментировать
  • Что выбрать с++, с или go для алгоритма?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    > но методы в струкртурах это большой у С++ плюс перед С.

    Ну кто-то ООП переболел в свое время, кто-то до сих пор болеет, а солидные мужчины не болели никогда.

    > Процессорное время тут очень дорого.

    Все три языка подходят. Думайте как разруливать concurrency. Go для этого изначально задумывался.

    И вы не обязаны писать весь проект на c/c++/go. Можете написать затычную часть как микросервис, а сверху повесить хоть Ноду, хоть Python, Хоть PHP.

    > + C и C++ можно сделать как модуль для NodeJS или расширение для Php

    Я бы сделал микросервис. И в этом случае go тоже отлично подходит.

    Я бы вибирал между С и go. С быстр, у go удобный concurrency.
    Ответ написан
    7 комментариев
  • Работа с Imagemagick в Node. Как конвертировать изображения в видео/gif?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    > convert *.jpg myfilm.mp4

    Когда запускаете это в консоли - командная оболочка за вас делает следующее: видит шаблон *.jpg, берет ищет все файлы, соответствующие этому шаблону, например 1.jpg, 2.jpg, 3.jpg, и вызывает команду уже как

    convert 1.jpg 2.jpg 3.jpg myfilm.mp4

    Оболочка это делает за вас, а в js вы должны сами получить список файлов-аргументов, как-то так

    im.convert(['1.jpg', '2.jpg', '3.jpg', 'myfilm.mp4'], ....
    Ответ написан
    Комментировать
  • DNS AMS2 сервер DigitalOcean лежит??

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Вся официальная и актуальная инфа здесь: https://status.digitalocean.com
    Ответ написан
    Комментировать
  • Какие есть альтернативы Photoshop и Sketch?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Adobe Fireworks!

    UPD: В свое время мне пришлось купить Мак, только потому что Fireworks не работает под Linux. О как ))
    Ответ написан
    Комментировать
  • Как подтвердить авторство видео?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Каким образом видео оказалось у третих лиц? Вы размещали его в открытых источниках? Если да - то возможно с потерей качества, или у вас есть более длинное видео (исходники в общем).

    Можно попробовать написать жалобу в фейсбук, приложив что-то из вышеописанного, но я не знаю как это работает. Можно до суда дойти, но надо быть готовым к трудностям.

    Не опускайте руки - воров нужно наказывать.

    UPD: Конечно, если речь о том, что видео было скачано откуда-то, и куда-то залито. Если например разместили запись с YouTube стандартными средствами - то это нормально, вы сами на это согласились, когда размещали и разрешали показ на других сайтах.
    Ответ написан
    Комментировать
  • Пост-процессор для HTML?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Не найдете, да и не особо это нужно.

    Для таких вещей идеально подходит gulp + jade. Все можно сделать очень круто, но повозиться все же придется. Учите gulp, jade, sass и конечно Ноду.
    Ответ написан
  • Обязательные настройки PostgreSQL после новой установки?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    за вас уже все настроили по умолчанию чтобы работало нормально на большинстве средних задач.
    Ответ написан
    2 комментария
  • Как ограничить использование процессора для функции?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    > юзеры-то в одном месте, но есть еще куча таблиц, данные из которых надо собрать вместе и записать в поле юзера.

    Не туда роете. Это нужно разруливать внутри БД - например Postgres, хранимые процедуры.

    Гонять данные туда-сюда между базой и приложением - пустое. За целостность данных должна отвечать база.
    Ответ написан
    Комментировать
  • Как защитить запрос от изменения параметров?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Проблемы нет вообще - клиент говорит что он отвечает и на какой вопрос. Просто проверить при записи - имеет ли клиент право отвечать на данный конкретный вопрос. На этом весь web построен.
    Ответ написан
    Комментировать
  • Как заливать несколько сайтов на один droplets?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    1) Прописываете dns всех доменов ваших сайтов на целевой дроплет
    2) Настраиваете nginx, чтобы слушал на 80 порту, прописываете отдельные директивы server - server_name

    server {
      listen  80;
      server_name domain1.ru;
    ......
    }


    для соответствующих директив server прописываете откуда что брать (статические файлы, proxy_pass, etc...)

    3) Настраиваете бекенды сайтов, чтобы отдавали там, откуда будет брать nginx

    Точнее сказать нельзя, так как вопрос очень расплывчатый
    Ответ написан
    Комментировать
  • Как изменить исполняемый unix файл?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Легко, скорее всего это обычный текстовый файл - в текстовом редакторе

    Если бинарный - тогда грубо говоря никак (сложно и вопрос надо ли)
    Ответ написан
  • Как правильно организовать совместную разработку?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Насколько я понял - проблемный файл имеет бинарный формат - тогда Git никак не поможет в разруливании конфликтов.

    Если этот файл - результат автоматической генерации (билда) из текстовых файлов - разруливать конфликты в этих исходных текстовых файлах. Если же этот файл генерится например какой-то GUI-программой - у меня мыслей нет, лучше задать этот вопрос людям, которые работают с такими же задачами.
    Ответ написан
    Комментировать
  • Node.js + nginx: как настроить несколько серверов на разные поддомены?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    > sites-available

    Убедитесь, что это симлинк на /etc/nginx/sites-enabled/default (default - любое имя)

    Сервер nginx был перезагружен после изменения?

    Также для нормальной работы проксирования (в дальнейшем, сейчас дело не в этом) нужно подгрузить proxy_params:

    location / {
        include /etc/nginx/proxy_params;
        proxy_pass http://portfolio.ru:3000;
      }
    <code>
    Ответ написан
  • Как правильно сделать перезагрузку веб-сервера?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Если на сервере деплоится один проект - я вообще не вижу причин заморачиваться с юзерами и бояться деплоя от рута. Если юзер от которого выполняется деплой может завалить этот самый деплой - зачем бояться за остальные потроха сервера?
    Ответ написан
    Комментировать
  • Как грамотно сделать меню в jade?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Реализация подобного рода вещей - сильная сторона Jade

    Под такие задачи плохо подходит include. Используйте наследование. В родительском шаблоне определите все общие блоки, в дочерних шаблонах оставьте только то, что меняется

    1. Создаем родительский шаблон, определяем блок контента и блок общих переменных, убираем дублирование в микс, этот микс вызываем в цикле, данные для цикла выносим отдельно:

    //- filename: root.jade
    - var nav = [{url: '/', name: 'Home'}, {url: 'about.html', name: 'About'}....];
    doctype html
    html(lang="en")
      block sharedVars
      head
        block title
      body
        ul.nav
          each i in nav
            +navItem(i.url, i.name, i.url == pageUrl)
        block content
    mixin navItem(url, name, current)
      li.nav-item(class={active: current})
        a.link(href=url)= name


    Очевидно, теперь родительский шаблон ждет переменную pageUrl.

    2) Создаем шаблоны дочерних страниц, в них определяем родительский шаблон, контентные блоки и необходимые для родительского шаблона переменные.

    extends root
    append sharedVars
      - var pageUrl = '/';
    block title
      | My title
    block content
      h1 Мой заголовок
      .content
         p Hello World


    Обратите внимание как передается переменная pageUrl из дочернего шаблона в родительский - через блок sharedVars. Этого нет в документации по Jade.
    Ответ написан
    7 комментариев
  • Как в jade сделать такое?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Насколько я понял, вот этот блок

    include ../modules/promo-block/promo-block

    должен включать этот микс

    +preview('Название', 'Дата')

    Так как блок теперь зависит от параметров ('Название', 'Дата'), то я бы его тоже сделал миксом, принимающим эти параметры. Можно его также вынести в отдельный файл и подключать где надо.
    Ответ написан
    8 комментариев
  • Что выполняет процессинг данных в асинхронной модели?

    AirWorker
    @AirWorker
    Node.js full stack web dev
    Самое главное что нужно знать - это то, что происходит вызов интерфейса операционной системы, Нода сама файл не читает. Дальше - дело операционной системы. Как только будет получен ответ по этому вызову - возникнет соответствующее событие и будет вызван callback.
    Ответ написан