Задать вопрос
  • Что можно делать с помощью Docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Docker это набор сервисов и утилит созданных для удобного управления встроенными в ядро Linux технологиями Namespace (для изоляции процессов) и CGroups (для управления ресурсами).

    По мимо Docker существует ряд инструментов призванных делать тоже самое Systemd-Nspawn, LXC, Podman, etc - все они работают похожим образом и точно так же изолируют Linux-овые процессы. Docker самый распространённый и популярный из-за стандартизации процесса сборки образа и удобных утилит для управления жизненным циклом контейнера, Docker это как libc - только в разрезе контейнеров.

    Контейнер можно запустить не имея ни одного из этих инструментов с помощью утилиты unshare - она позволяет точно также управлять Namespac-ами (управлять ресурсами придётся вручную добавив процесс в CGroups).

    Контейнер это изолированный Linux процесс - соответственно запустить получиться только Linux-овый софт и больше ничего. Контейнер это не маленькая виртуальная машина, контейнер это не Java для всего. Конетейнер это только средство запустить Linux-овый процесс в изолированной среде (и, возможно, ограничить его по ресурсам), например запустить приложение требующее наличия в системе конкретных зависимостей, но отсутствующих по факту. Или запустить в целях разработки конкретную версию PHP, Python, Ruby, etc при этом избежав конфликта зависимостей и Dependency hell из-за несовместимых библиотек на хостовой машине.

    Представь себе ситуацию, когда ядро Linux загрузилось и запустило только один (какой угодно) процесс, присвоив ему PID 1 - вот так контейнер выглядит изнутри.

    PS
    Есть конетйнеры на Windows Core они запустятся только на Windows и служат для изоляции только Windows софта и для них есть набор утилит, которые распространяются в виде набора бинарных файлов тоже, почему-то, под именемем Docker (не путать с Docker-Desktop, так как Docker-Desktop - это набор сервисов позволяющих виртуализировать ядро Linux и тем самым получить возможность запустить Linux процессы на Windows или MacOS).
    Ответ написан
    Комментировать
  • Логика игры "Пятнашки" на Python?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Надо, чтобы "четность" перестановки совпадала с четностью финального поля (1).
    Занумеруйте все 16 позиций слева направо сверху вниз.
    чтобы подсчитать четность, рассматривайте каждую пару заполненных позиций (15\*14/2=105 пар) - если числа идут не в том порядке (большее число на позиции с меньшим номером) - то прибавьте 1 к ответу. В конце возьмите ответ по модулю 2. Это и будет четность перестановки.

    Чтобы получить поле, которое можно собрать, сгенерируйте любую перестановку (случайно перемешайте 15 чисел), а потом посчитайте ee четность. Если четность плохая, то поменйте местами любые 2 соседних элемента (выберите случайно, или меняйте первые 2 всегда - на вероятности всех возможных полей это не влияет).

    Edit: Но вы это почти все итак знатете, ибо функция is_solvable в вашем коде как раз инверсии уже считает.
    Значит, Но вы знаете, что плохое поле от хорошего отличается лишь четностью, значит, если поле плохое - меняйте местами 2 соседних по порядку элемента. Например верхний левый со вторым в верхней строке.
    Ответ написан
    Комментировать
  • Экстренное завершение работы чат бота Telegram. Как решить проблему?

    nki
    @nki
    bezkart.ru готовая система лояльности
    т.к программирую всего 2 дня

    Тогда вам не с бота надо начинать, а уверенно знать язык и его основные конструкции. Успеете еще ботов написать.
    Ответ написан
    2 комментария
  • Как исправить ошибку в коде на python?

    Vindicar
    @Vindicar
    RTFM!
    Такие вопросы здесь уже были.
    Ты пишешь код согласно устаревшему гайду - python-telegram-bot сильно изменил API начиная с версии 20.
    Открывай документацию на python-telegram-bot, в частности, секцию примеров, и учись по ней.
    Ответ написан
    Комментировать
  • Стоит ли мне знать как работает cmd для Python?

    maxdzyubak
    @maxdzyubak
    Программист. Спортсмен. Книголюб. Походник. Веган
    Сергей П очень верно и точно ответил.
    Добавлю только, что надо понимать, разбираться как работает технология с которой вам предстоит работать. Не зубрить. Понимать. Это большая разница.
    Ответ написан
    Комментировать
  • Как замокать зависимость в pytest?

    i229194964
    @i229194964
    Веб разработчик
    import pytest
    from unittest import mock
    
    class B:
        def __init__(self, db_connection):
            self.__db_connection = db_connection
    
    class A:
        def __init__(self, b: B):
            self.__b = b
    
        def do_something(self) -> None:
            pass
    
    @pytest.fixture(scope="module")
    def mock_b(mocker):
        mocker.patch('path.to.B')  # Здесь 'path.to.B' - это путь к классу B, который нужно замокать
        return B(mock.MagicMock())  # Возвращаем экземпляр класса B с мок-объектом для db_connection
    Ответ написан
    Комментировать
  • Почему ffmepg выдает ошибку?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Не существует ffmpeg.exe у тебя, а не проблема с тем, что он не находит твоё видео

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

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    PHP и Nginx незачем запускать в одном контейнере. Что бы контейнеры были связаны друг с другом, нужно их объединять в docker-compose.yml.
    Ответ написан
    2 комментария
  • Как исправить скрипт?

    Достаточно обернуть все $file в кавычки:
    date=$(stat --printf '%w' "$file" | awk '{print $1}')

    mv "$file" "$date-$file"

    Но пробелы в названиях, в твоём случае, не единственная возможная проблема. Парсить вывод ls считается плохой практикой. Вместо этого надёжнее использовать глобы:
    for file in "$1"/*

    Про причины хрупкости парсинга вывода ls можно почитать тут:
    https://mywiki.wooledge.org/ParsingLs
    Ответ написан
    1 комментарий
  • Почему каталог с React-приложением не загружается на GitHub?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Как так получилось, что вы обнаружили проблему только при отправке на гитхаб? Вы вообще не используете гит в локальной разработке?

    Ваша проблема в том, что при изначальном создании приложения командой create-react-app сразу инициализируется Git-репозиторий внутри каталога с приложением. Если вы решили не работать в этом репозитории, а отслеживать изменения client и server в другом общем репозитории, то вам нужно удалить тот вложенный репозиторий из папки client. Иначе гит будет игнорировать изменения там и подумает что это вы подключили подмодуль (submodule).
    # удалите папку .git, которая внутри каталога client
    rm -rf "client/.git"
    # скажите гиту, чтобы он забыл, что перед этим видел там вложенный репозиторий 
    git rm --cached "client/"
    # теперь получится добавить приложение в ваш основной проект
    git add "client/"
    Ответ написан
    Комментировать
  • Что особенного в IP адресе 8.8.8.8?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие провайдеры при истощении баланса перенаправляют все клиентские http-запросы на свою страничку с уведомлением о необходимости оплаты и каким-нибудь эквайрингом. Очевидно, что для их работы нужен работающий DNS, а зачастую ещё и доступ к CDN. Провайдеры поумнее оставляют доступ к своему DNS и запросы к CDN тоже через себя проксируют, но некоторые не заморачиваются и просто оставляют часть доступа в дикий интернет.
    Ответ написан
    3 комментария
  • На каком GUI легче сделать логические игры (типо Судоку, шашки) в Python?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    pygame
    Ответ написан
    Комментировать
  • Какая книга по Python самая лучшая для новичков и продолжающих?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Лучше Лутца ничего не было и нет.
    Ответ написан
    3 комментария
  • Программирование и математика тесно связаны?

    @dmshar
    А откуда вы взяли список? Просто это очень малая часть того, что должны знать те, кто хотят себя называть специалистом по Data Science. Нет, конечно если под этим терминам понимать вызов методов fit() и predict() - тогда конечно, без знаний математики можно и обойтись. Это как есть фельдшер, а есть врач. Есть младший кодер, вызывающий указанную функцию, а есть тот, кто сам может подобрать метод а может - и усовершенствовать его. А кем быть - уж вам решать.
    6411ccaa240ed514912408.png
    Меня больше смущает наметившийся торг "а надо-ли учить математику или алгоритмы, а чего-нибудь кроме синтаксиса языка надо знать или так прокатит, а то я в математике не силен". Если что-то "не заходит" - то зачем себя напрягать? Есть куча профессий, где без всего этого можно обойтись. Когда найдете что-то что окажется действительно вашим - таких торгов не возникнет, а удовольствия в конечном итоге получите гораздо больше.
    Ответ написан
    2 комментария
  • А время с DS1302 всегда-всегда корректное?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    И решение, если я читаю часы-минуты-секунды и получаю в секундах 00 - то мне следует перечитать минуты ещё раз и сделать вывод.

    Обычно в таких случаях самый часто изменяющийся разряд читают дважды -- в начале и в конце чтения составного значения и перечитывают значение целиком если этот разряд изменился.
    Ответ написан
    1 комментарий
  • Как из russia-latest.osm.pbf достать список всех городов России?

    freeExec
    @freeExec
    Участник OpenStreetMap
    SELECT * FROM planet_osm_points WHERE place = 'city' AND population::int > 4000

    Все теги описаны в wiki.osm.org и именно от туда надо начинать свой путь.
    Второе, что вы называете городом и что отмечают в ОСМ, немного разные понятия.
    Третье, стоит надеяться, что население этого города кто-то внёс, и пусть это будут данные не переписи 2012 года.

    Для FLEX режима, который ты использовал, но не настраивал деление по слоям, сделав в итоге только запутанней.
    SELECT * FROM points WHERE tags->>'place' = 'city' AND (tags->>'population')::int > 4000
    Ответ написан
  • Как понять где +, а где -?

    Там разве не однозначно как он был установлен?
    Ну и если есть доступ к чему паять - отследите куда проводники на плате идут, найдите ближайший конденсатор. Или прозвоните тестером - минус это наверняка корпус.

    Но наверно правильнее будет обратиться в сервис, кто постоянно разбирает паяет такие железки.
    Ответ написан
    Комментировать
  • Как заставить def работать?

    Vindicar
    @Vindicar
    RTFM!
    Поучи язык. Просто поучи, без ботов.
    def объявляет функцию, но не вызывает её.
    Ты её объявляешь внутри record_volume(), но ничего с ней не делаешь.
    Ответ написан
    Комментировать
  • Как продолжить разговаривать с нейросетью?

    Vindicar
    @Vindicar
    RTFM!
    Гугли finite state machine (FSM) для библиотеки, которой пользуешься.
    Ответ написан
    Комментировать