Задать вопрос
  • Как корректно выгрузить список docker-образов в массив?

    Lynn
    @Lynn
    nginx, js, css
    Можно сразу передавать данные в цикл:
    docker image ls --format "{{.Repository}} {{.Tag}}" | while read image tag; do
      echo "image: $image"
      echo "tag: $tag"
    done


    В принципе можно просто сохранить в переменную и потом использовать её, точно так же:
    images=$(docker image ls --format "{{.Repository}} {{.Tag}}")
    echo "$images" | while read image tag; do
      echo "image: $image"
      echo "tag: $tag"
    done
    Ответ написан
    Комментировать
  • MYSQL --skip-grant-tables?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Ну так посмотрите файл сервиса, может эта опция в нём напрямую прописана.
    Ответ написан
    Комментировать
  • Лишние переводы строк в ответе сервера (echo)?

    Vamp
    @Vamp
    Почти наверняка лишние переводы строк находятся перед <?php.

    Или после ?> в db.php
    Ответ написан
    1 комментарий
  • Как запретить прямое скачивание файлов nginx?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Серверная часть приложения размещается в отдельном каталоге с ограниченными правами, а не в каталоге статических файлов, которые отдаются веб-сервером. Традиционно для бэкенда на сервере создаётся отдельный пользователь, от имени которого запускается NodeJS как сервис, а в его домашнем каталоге или в другом каталоге с ограниченными правами и размещается код бэкенда. Второй случай используется, когда доступ к данному каталогу нужен другим приложениям/сервисам. Например системе доставки и развёртывания.
    Ответ написан
  • GIT для 1C-Bitrix, как наладить процесс разработки?

    cyber-jet
    @cyber-jet
    Разработку рекомендуется вести в папке local, она может переопределят всё что есть в папке bitrix - почитать тут

    PS: Вообще это относится к документации по организации разработки там-же можно почитать про организацию контроля версий, композер.
    Ответ написан
    Комментировать
  • Как нарезать (монтировать стрим) и записывать одновременно?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Виртуальный монитор и на нём разместить окно браузера. Например: раз, два.
    Ответ написан
    Комментировать
  • API bot TG - Как мне узнать, на какой вопрос ответили?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    По-простому, костыльному, можно предполагать, что очередная реплика пользователя, которая не-команда типа /start (начать сначала) или какой-нибудь /edit (допустим, исправить последний ответ) – это ответ на следующий по порядку вопрос. В базе данных сохраняйте под id пользователя его ответы, заполняя каждый раз следующий пустой вопрос, например. Эт. совсем упрощенно-колхозно.

    Для адреса, наверное, можно предлагать не вводить название, а тыкнуть точку на карте — прислать location, как вариант.

    По-крутому, можно сделать нормальное веб-приложение, хороший интерфейс, форму с полями, валидацией и подсказками. См. WebApp в Telegram.
    Ответ написан
    Комментировать
  • Как обратится к значению proxy(object)?

    @eminsk
    developer python, javascripts
    Проблема в том, что filter() возвращает массив объектов, даже если найден только один элемент. В твоем случае test - это массив с одним объектом Proxy(Object), а не сам объект.
    Чтобы получить доступ к свойству hours, тебе нужно обратиться к первому (и единственному) элементу массива:
    const test = this.ArrBookingHours.filter((hour) => hour.date === day.toDateString())
    console.log(test)
    console.log(test[0].hours)

    строка console.log(test[0].hours) - это обращение к первому элементу массива

    Еще есть компактнее с использованием find и опциональной цепочки:
    const booking = this.ArrBookingHours.find(
      hour => hour.date === day.toDateString()
    )
    
    console.log(booking?.hours ?? 'Нет записи на эту дату')


    Используя этот способ - можно избежать ошибки Cannot read property 'hours' of undefined, если нет ни одного совпадения.
    Ответ написан
    Комментировать
  • Как сохранять группу товаров при обмене?

    @koder_1
    Битрикс программист
    Как вариант, обработчики событий навесить на обновление товара, и в них запретить менять группу товаров.
    Ответ написан
    Комментировать
  • Как можно сократить этот код?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const type_input = document.getElementById("type_input").value;
    const type_name = ['фильм', 'сериал', 'мультсериал', 'мультфильм', 'аниме'];
    const type_idx = type_name.indexOf(type_input);
    let type = 0;
    if (type_idx === -1) {
        alert('Добавьте или исправьте тип');
    } else {
        type = type_idx + 1;
    }

    А вообще, такое делается с помощью select, тогда невозможно ввести неправильное значение и весь этот код просто не нужен.
    И в целом, не используйте var, она размещает переменную в глобальной области видимости. Вместо этого используйте const или let, в зависимости от дальнейшей иммутабельности переменной.
    Используйте строгое сравнение. Нестрогое означает, что вы не уверены в типах данных.
    Ответ написан
  • Как можно сократить этот код?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    const type_input = document.getElementById("type_input").value.toLowerCase();
    const type_names = ['фильм', 'сериал', 'мультсериал', 'мультфильм', 'аниме'];
    const type_index = type_names.indexOf(type_input);
    let type = 0;
    
    if (type_index === -1) {
        alert('Добавьте или исправьте тип');
    } else {
        type = type_index + 1; // значение для базы данных (если нужно 1-based)
    }
    Ответ написан
    4 комментария
  • В какой контейнер ставить сертификат Lent`Encrypt в NGINX-front или NGINX-backend?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Во первых для вашего определения того, что вы называете "фронт" есть официальный термин - реверс прокси.
    И конечно же сертификаты должны быть на нем.
    Ответ написан
    Комментировать
  • Могу ли я прогнать через password_hash пароли в бд, которые md5, чтобы не сломалась авторизация?

    @alexalexes
    Смену способа хеширования пароля вы можете провернуть только при участии каждого пользователя, в два этапа.
    1 этап.
    Делаете патч в функцию авторизации.
    Когда пользователь авторизуется, проверяете, что заполнено поле по хешу новой функции.
    Если оно заполнено по новой функции, то все проверки верности пароля проводите с ней, поле старой функции игнорируете.

    Если хеш по новой функции не заполнен, то проверяете, что пароль верен с точки зрения хеша старой функции. Если верен пароль, то записываете хеш по новой функции, так как у вас есть исходный пароль.
    Так вы накапливаете базу пользователей, которые часто заходят. И для них вы бесшовно меняете хеши.

    2 этап
    Когда число поменянных хешей примерно будет равно числу активных пользователей за определенный период, то в патче запрещаете пользоваться старым хешем для проверки паролей, отправляете пользователя принудительно восстанавливать пароль по другим учетным данным, например, по эл. почте.
    При восстановлении доступа пароль хешировать новой функцией.
    Все, с этого момента можно избавиться от логики использования старого хеша.
    Ответ написан
    Комментировать
  • Защищенный ТАЙМЕР для ограничения прохождения викторины по времени?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Элементарно же, когда пользователь начинает опрос, сохранять в БД запись, содержащую идентификатор опроса, идентификатор пользователя и время начала опроса.
    Ответ написан
    6 комментариев
  • Может ли суверенный интернет существовать в РФ с учетом того, что dns-записи во многих случаях хранятся на зарубежных ns-серверах?

    Hivemaster
    @Hivemaster
    Админ, который хочет программировать
    Первоисточник - это тот dns-сервер, адрес которого прописан у вас на сетевом интерфейсе. Ему ничего не мешает хранить хоть все доменные зоны у себя, как и не мешает в качестве корневых использовать произвольные сервера.
    Ответ написан
    Комментировать
  • Как работать с минифицированным JS?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Никак. С кодом после минификации не надо никак работать. Минифицированный код предназначен для доставки его по сети максимально быстро на клиент. Для изменения кода вам следует вносить изменения в исходный код и уже только потом его минифицировать, а не наоборот. Если исходного кода нет - то пропускаете через любой деобфускатор и вручную восстанавливаете исходный код. Ну или пишете сами с нуля то же самое.
    Ответ написан
    2 комментария
  • Как использовать js плагин mysql в сборке gulp?

    Fzero0
    @Fzero0
    Вечный студент
    MySQL - это серверная технология, и прямое её использование в браузере невозможно
    MySQL работает только на сервере (Node.js), а не в браузере
    Вы пытаетесь через Webpack собрать MySQL для браузера?
    Ответ написан
    1 комментарий
  • Максимальная длина кабеля 5e?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Теоретически... на качественной медной одножилке... на хороших сетевках одной и той же конторы... можер быть заработает. Но гарантий никаких, сам понимаешь.

    Не сношай моск, юзай оптику и пару конверетров оптика->eth
    Ответ написан
    2 комментария
  • Нужна камера без аккаунта, можете подсказать варианты?

    @Komrus
    CIO в системном интеграторе.
    1) Лучше искать по словам "IP-камера" (по "веб-камере" будут попадаться всяике изделия с USB портом; а надо - с Ethernet)
    2) Убедиться, что поддерживает протокол ONVIF.
    3) Убедиться. что в описании нет слов "работа только с облаком ННН"
    4) Подумать - надо ли именно поворотную. Ибо парочка не-поворотных камер запросто может стоить дешевле.
    5) Подумать - нужны ли детекторы движения и т.п. (дабы начинать запись только по обнаружению движения; или - отправлять алярм)
    6) Нужна ли запись (если нет - только текущую ситуацию можно посмотреть; а начинает хотеться глянуть, что собакен делал пол-часа назад и где он взял то, что сейчас жуёт :)))
    7) Убедиться, что веб-морда камеры работает в современных веб-браузерах и не требует какого-то
    экзотического плагина для просмотра видео.
    Ответ написан
    2 комментария