• Как удалить все неиспользуемые зависимости в Linux?

    xenon
    @xenon
    Too drunk to fsck
    apt autoremove может быть? (в новых debian'ах просто apt, не apt-get)
    Ответ написан
    Комментировать
  • Как правильно организовать деплой приложения?

    shebanoff
    @shebanoff
    Я увидел в Вашем вопросе две части.

    Как правильно организовать деплой (выкладку работоспособного кода на сервер)?


    В самом простом случае Вам подойдет связка ssh + git pull на сервере. В этом случае на сервер будут доставлены патчи коммитов, которые есть в репозитории, но еще не появились на сервере, т.е. «только обновления файлов, которые сейчас существуют». Этот метод довольно подробно обсудили в ответах на другой вопрос.

    Если хочется автоматизировать процесс, что похвально, то я вижу три доступных инструмента для этого: Capistrano, Mina (мой персональный фаворит) и Vlad the Deployer. Все три проекта схожи по сути. Принцип их работы таков:
    1. Подключиться к целевому серверу.
    2. Залить обновление кода из репозитория.
    3. Выполнить предписанные Вами инструкции (перезапуск демонов, сброс индексов, обновление структуры БД и прочее).
    4. ...
    5. PROFIT!


    Инструменты просты, переход на них — дело одного выходного дня, и может быть сопряжен со сложностями только в связи с новизной.

    Как организовать процесс тестирования?


    Если Вы еще не определились с методикой тестирования (Test Driven Development, Behavior Driven Development, Лень-Driven Development), то Вам следует для начала заняться именно этим.

    Скорее всего, тесты будут выполняться на Вашей локальной машине, пока Вы пишете код. Используя RSpec, я держу открытым Guard. Guard отслеживает изменения в коде и запускает набор юнит-тестов, которые покрывают измененный код. Весь процесс занимает не больше минуты-двух, и особо не напрягает. Как только я вижу провалившийся тест, я меняю код до тех пор, пока он не станет зеленым. Пока тестов мало (это не самый лучший знак, к слову), Вы работаете один, локального запуска перед деплоем может оказаться достаточно — например, чтобы проверить релиз на доступность критического функционала: регистрации, покупки, создание постов и т.п.

    В какой-то момент речь может зайти о Continious Integration. Это возможность иметь стабильный билд в любой отрезок времени, а так же принимать решение о годности каждого отдельного коммита. Сопряжено с деплоем кода на integration-сервер и запуском на нем тестов. Скорее всего, это Вас не интересует, если Вы не работаете в команде. Но, для полноты картины, Вы можете понаблюдать за билдами на Travis CI известных Open Source проектов: Symfony 2 и Ruby on Rails.

    Таким образом


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

    Приведите в порядок Ваш репозиторий с кодом, используйте mina для деплоя и запускайте тесты на Вашей локальной рабочей машине. Как только Вы почувствуете, что этого не достаточно — Вы наверняка уже будете знать, куда шагать дальше.
    Ответ написан
    8 комментариев
  • Midnight Commander, выделение нескольких файлов

    @thexplorer
    ctrl+T
    у меня оно выделяет поштучно без проблем, даже если Shift+up/down не работает
    Ответ написан
    3 комментария
  • Как настроить быстрый OpenVPN?

    theurs
    @theurs
    Может упираться в процессор из за шифрования.
    Ответ написан
    1 комментарий
  • Как решить проблему с wifi сетью в офисе?

    Jump
    @Jump
    Системный администратор со стажем.
    начали говорить, что у нас слишком много устройств, из-за этого помехи (20-25 устройств в среднем).
    Правильно говорят.

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

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

    Я давлю на то, что 1) Пинги и потери даже по проводу
    Это как? По проводу потери? И пинг большой? Что пингуете?

    Со старым роутером таких проблем не было.
    Настроен был по другому, да и железо может отличаться.
    Ответ написан
  • Почему селектор jQuery возвращает объект?

    @Kraky
    Если вам нужно изменить элемент через нативный js, то получить этот элемент из объекта jQuery можно двумя способами:
    1. var element = $("#qty").get(0);(можно использовать с отрицательными индексами)
    2.var element = $("#qty")[0];(немного быстрее, но без отрицательных индексов)

    Вот только зачем вам получать элемент через jQuery и менять его свойства через ванильный js я не понимаю. Изучите документацию jQuery . Я уверен, вы найдете там интересующие вас методы работы с dom деревом.

    UPD:
    Я полагаю, что ваш обработчик клика выглядит как-то так
    $('#some_btn').on('click', function () {
        console.log($("#qty").val());
    });

    Так как вы грузите ajax-ом, то элемента #qty еще не существует. Вам необходим следующий обработчик клика:
    $(document).on('click', '#some_btn', function(event) {
        var input = $("#qty");
        console.log(input.val());
    });

    Данный процесс называется event delegation, о нем можно прочитать здесь
    Ответ написан
    9 комментариев
  • Как грамотно сверстать сайт у которого несколько тем?

    Ankhena
    @Ankhena Куратор тега Вёрстка
    Нежно люблю верстку
    БЭМ
    flex order
    Остальное можно сказать только видя эти вариации.
    Ответ написан
    Комментировать
  • Как работает этот кусок кода на js?

    0xD34F
    @0xD34F
    Но что возвращает return this.on(...); ? Если ничего, то в чем суть?

    А вы откройте код метода on, и посмотрите. Я бы предположил, что он возвращает this - чтобы сделать возможным method chaining.

    UPD. Ну да, так и есть. Нашёл код модуля, о котором вы говорите - VideoStream наследуется от EventEmitter'а, в документации к которому насчёт метода on прямым текстом сказано, что

    Returns a reference to the EventEmitter, so that calls can be chained
    Ответ написан
    1 комментарий
  • Почему зависает Node.js?

    0xD34F
    @0xD34F
    Подозрительный кусок кода:

    app.use(function(req, res, next) {
      req.session.number =req.session.number + 1 || 1;
    })

    Где-то тут должен быть вызов next, разве нет?
    Ответ написан
    1 комментарий
  • Div, который выглядит по-разному в каждом браузере?

    @itsjustmypage
    Outline это контур элемента с внешней его стороны, то есть сразу за border. В отличие от border он никак не влияет на элементы, их ширину и расположение. Ключевое слово inset в свойстве outline: inset 100px green; устанавливает этот контур в виде псевдотрехмерной рамки за счёт осветления правой и нижней границ и затемнения левой и верхней относительно указанного цвета. Ширина 100px, цвет зелёный.

    Баг создаёт свойство outline-offset: -125px;, которое задаёт смещение контура. При положительном значении контур будет расширяться во все стороны. А при отрицательном будет сжиматься внутрь элемента.

    Спецификация CSS Basic User Interface Module Level 3 в статусе рекомендации говорит о том, что контур элемента со свойством outline-offset при отрицательном значении не должен становиться меньше, чем двукратная вычисляемая ширина контура. То есть если в примере у нас размеры элемента 100x100 пикселей и контур задан у нас шириной 100px, то при outline-offset: -125px; он должен сжаться внутрь элемента на 125px со всех сторон, а спецификация визуально ограничивает сжатие до outline-offset: -50px; (по 50px внутрь с каждой стороны элемента). То есть контур должен просто сойтись вместе со всех сторон, образуя квадрат в нашем случае и насколько больше не ставь отрицательное значение, больше он сжиматься не должен. Но реализация в браузерах не учитывает это поведение и выдаёт непонятные фигуры, если отрицательное значение слишком большое.

    https://www.w3.org/TR/css-ui-3/#outline-offset
    5b447ea6c9061121780680.jpeg

    Поведение при отрицательном outline-offset должно быть как на гифке. Если дальше уменьшать значение, ничего меняться не должно. AMQ4hnM.gif
    Ответ написан
    1 комментарий