• После обновления chrome стал перенаправлять домены apache на https протокол?

    kumaxim
    @kumaxim
    Web-программист
    Столкнулся к этой же проблемой, после того как с утра набрал apt update && apt -y full-upgrade

    Мое девелоперское окружение развернуло на Docker-контейнерах, т.е. в одном у меня работает MySQL, во втором nginx, в третьем php-fpm. Для доступа из хостовой ОС к контейнеру я использовал домен host.dev. После обновления Google Chrome до версии 63.0.3239.84 (Official Build) (64-bit), дата 07-12-2017 мой девелоперский домен перестал работать, причем только в Хроме. В Firefox все ОК

    Начал копать. Первое на что наткнулся это пост на Stackoverflow Google Chrome redirecting localhost to https. Ответ от BigJump, отмеченный решением не наш случай, однако, меня зацепила его заметка про HSTS, поэтому на всякий случай в свой конфиг nginx я добавил следующее:

    server {
        add_header Strict-Transport-Security "max-age=0;";
        ...........
    }


    Листаю немного ниже, этот же самый вопрос и вижу замечательный ответ от rafawhs. Оказывается, зона .devявляется новым gTLD доменом, который теперь принадлежит Google. Вот это и является корнем. Google Chrome - браузер от гугла, в который они добавили ограничение ERR_ICANN_NAME_COLLISION, из-за которого никакой домен имеющий зону .dev с моего локального сервера теперь работать не будет. Остальные браузеры, в частности FireFox пока, по всей видимости, еще не подтянулось, впрочем, я думаю, что это только вопрос времени.

    На момент написания этой статьи эта проблема встречается только в Google Chrome с версии 63.0.3239.84. У меня на нетбуке стоял Chrome 61 версии, там ограничение ERR_ICANN_NAME_COLLISION на домены .dev с локального сервера отсутствует.

    Проблему я решил просто, открыв /etc/hosts и изменил host.dev на host.ld, который в данный момент gTLD зоной не является. Поправил доменное имя в настройках приложения и теперь у меня снова все работает.
    Ответ написан
    2 комментария
  • В какой момент вы понимаете, что продукт готов к переходу со стадии бета версии на стадию полноценного монетизируемого продукта?

    @kn0ckn0ck
    Продюсер
    Критерии готовности продукта:
    - [качество] нет ошибок, которые бы мешали использованию продукта
    - [целостность] любой пользователь может пройти от начала до конца, не прибегая к помощи разработчика
    - [обучаемость] приложение понятно настолько, что пришедшие 1000 пользователей не завалят поддержку тупыми/одинаковыми вопросами
    - [нагрузка] приложение выдержит одновременную работу 1000 пользователей (цифра условная)
    - [отслеживаемость] в любой момент вы понимаете где находится пользователь, что не получается, что не работает как задумано, есть возможность связаться с разработчиком и получить адекватный совет по дальнейшим шагам, есть возможность понять почему пользователь вывалился из workflow и возможность связаться с ним.
    Ответ написан
    1 комментарий
  • This.state поменялся в react devtools, но не поменялся в консоли. В чем причина?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    Вам нужно запомнить что setState асинхронная функция.
    this.setState({showModal: false,
                       email: Vemail,
                       name: Vname},()=>console.log(this.state)); //здесь будет то чт онужно 
    
        let yyy = this.state;
        console.log(yyy);//здесь дынные еще не попали в стэйт
    Ответ написан
    Комментировать
  • Как создать онлайн сервис конструктора всплывающих окон?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    Бекенд - делает серверную логику,
    Фронтенд - делает клиентскую логику,
    Верстальщик - верстает сервис, по макету, нарисованному дизайнером
    Дизайнер - рисует дизайн сервиса

    По 1му каждый. Можно убрать верстальщика и оставить только фронтенд разработчика, при условии, что тот умеет верстать(хотя, он должен уметь верстать, но, некоторые уже не любят этим заниматься).

    Тз, откуда мне знать, как его правильно составить, если я не знаю весь функционал вашего сервиса, пускай он и похож на другие. Для начала выпишите себе весь функционал, опишите работу этого функционала, что с чем должно взаимодействовать. Какой должен быть личный кабинет, что в нём должно быть, сайты, на которых размещено окно, графики какие-то или ещё что-то. Если вообще не знаете, то я бы на вашем месте сначала изучил сервисы, которые вы привели в пример. Как и что у них сделано, выписал бы минусы того сего, плюсы какие у них, отличие друг от друга. Эти данные использовать для построения своих требований для своего сервиса.

    Порядок действий.
    1) Описали всю логику сервиса, ПОЛНОСТЬЮ, до мельчайших деталей, прям каждую писечку!!!! Всё всё всё. После прочитать раза 3 от начала до конца, 100% появятся правки или дополнения. Все функции по монетизации, тарифы, личные кабинеты, конструктор самого окна, функционал вставки этого окна и всё всё всё. Ибо никто не станет вам на добром слове вносить изменения в созданную прогерами архитектуру проекта, потому что вы, не удосужились вписать новое требование в тз. С вам, что логично, потребуют доп плату уже к той, что была оговорена в начале.

    2) Ищите дизайнера. Нашли? Отлично! Тогда:
    1.1) По вашему тз делается прототип, того, что и как будет расположено на сайте, где какие элементы. Это как первые наброски, чертёж, если угодно.
    1.2) На основе этих набросков рисуется макет, утверждается дизайн сервиса.
    1.3) Утвердили все страницы, все элементы, все всё всё. У вас уже есть то, как выглядит ваш сервис.

    3) Берём фронтенд разработчика + бекенд разработчика
    Тут нужно подойти ответственно. Хорошего разработчика порой трудно найти, часто, хорошие стоят дорого, дешёвые сделают тяп ляп и ваш сервис станет очень сложно менять и дополнять в будущем.

    Нашли? Отлично!
    Обсуждаете с ними, что и как будет, и что вы вообще хотите. Показываете им 2м тз, макеты. Они между собой, на основе этого тз, распишут план работ, сроки, вёрстку, а так же, как и что будут реализовывать и что им может понадобиться. Как будут работать эти всплывающие окна, куда какие данные будут отправлять и т.п.

    Сам план работ, лучше разделить на этапы с вашей стороны. Т.е. Сделали один функционал, проверили, ещё 1 проверили. Разделить всё на задачи. Вам от этого только лучше, т.к. вы видите, что уже реализовано и сам факт того, что процесс идёт. Но повторюсь, нужно эти этапа с прогерами обсудить и принять.

    На основе того, что они решат, вам нужно выбрать хостинг. Все хостинги разные, у всей свой функционал, вместе с ними(так как вы наверняка не шарите) нужно выбрать хороший хостинг, т.к. ваш сервис предпологает размещение своих окон на чужих сайтах, а значит, в теории, что разместив таких окон около тысячи, на ваш сервер пойдёт некая нагрузка. Этот вопрос нужно учесть, что бы он в ненужный момент не упал от нагрузки. Скажу сразу, может стоить дорого, но это ваши заботы)))

    4) Тестирование
    Все всё сделали, ура. Дальше, начинаем тестировать сервис на его функционал. Ошибки и баги будут 100%. Все мы люди, все можем ошибиться, нужно эти ошибки исключить.

    5) Выкатка приложения:
    Т.к. сайт делался на дев(там, где разрабатывают) версии, осталось выложить сайт на основной домен(Который вы должны ещё приобрести). Выложили, всё настроили, ура. Приложение готово. Далее, реклама, маркетинг, сео и прочая чушь.

    P.S. Так как всё это пахнет фрилансом, то будьте готовы, что вас могут кинуть, игнорить, пропадать не известно куда. Не забудьте составить договора с прогерами, где будут описаны все нюансы. А так же, что бы под конец все права принадлежали вам и только, получение всех доступов, данных и т.п. Иначе потом, можете всё похерить и никто вам уже не поможет.

    Примерно так))
    Ответ написан
    Комментировать
  • Правильно ли будет, если поставить GitLab на сервере разработки?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    1. Правильно ли будет, если на этот сервер разработки я поставлю GitLab?
    2. Насколько помню, центральный git-репозиторий обычно хранят на отдельной машине (ну или на github.com).
    Вы ни когда не задумывались, с чем это связано? :)

    На самом деле, GitLab, не очень "спокойно" работает, если его проксируют, возникает целая череда "танцев с бубнами", что бы он нормально работал. Это первый момент.

    Второй момент, напрямую связан с первым - GitLab любит, что бы сервер был целиком в его распоряжении. Если не уходить далеко в подробности, можно поставить GitLab на какую-то виртуальную машину (например, LXC/LXD), а сервер разработки - на вторую виртуальную машину, и всё это будет работать в рамках одного сервера. В этом случае, кол-во "потенциальных проблем" сводится к нулю, но, крайне желательно иметь 2 разных IP, что бы избежать проксирования (и каждой машине выделить свой IP). В ином случае, мы опять упремся в HTTP-прокси со всеми вытекающими...

    Ещё один важный - GitLab очень любит ресурсы сервера и обычно требует не менее 1-2Гб оперативки... Которые, разумеется будут "откушены" от сервера и не смогут использоваться другими приложениями. А так же, на сервере будет "паразитная" нагрузка создаваемая самим GitLab'ом и когда кто-то решит выяснить, "почему всё тормозит" - сделать это будет не так просто, как хотелось бы, т.к. на сервере, кроме вашего приложения будет работать GitLab...

    Отвечая непосредственно на Ваш вопрос - "можно ли так сделать?" - можно. Но не стоит.
    Ответ написан
    Комментировать
  • Какой есть сервис для автоматического поиска уязвимостей сайта?

    Xapu3ma-NN
    @Xapu3ma-NN
    Что Вы подразумеваете под сервисами? Есть автоматические сканеры уязвимостей web-приложений, как платные так и бесплатные.

    Платные : acunetix , immuniweb, xspider

    Бесплатные : owasp zap, vega, w3af, netsparker
    Ответ написан
    Комментировать
  • Как убрать слеш в конце (\/)?

    miraage
    @miraage
    Старый прогер
    rtrim($str, '/\\');
    Ответ написан
    Комментировать
  • Как сделать поиск по разным таблицам в yii2?

    slo_nik
    @slo_nik Куратор тега Yii
    Добрый день.
    Я думаю, что Вы вообще не в ту сторону смотрите.
    Опишите свои таблицы, покажите структуру, связи и тому подобное.
    После того, как Вы дополните свой вопрос - можно говорить о том, как сделать поиск.
    Пока можно сказать одно - выкиньте свой код и начните с создания поисковой модели, где всё будет описано и настроены связи между таблицами.
    А то, как Вы делаете, в контролере - неверно.
    Ответ написан
    1 комментарий