Задать вопрос
  • Как пробросить порты ч-з несколько сетевых интерфейсов на Ubuntu?

    Bermut
    @Bermut
    Жертва домашней лаборатории
    Это решается таблицами маршрутизации, маркировкой соединений через mangle правила, если кратко, то должно выглядить как-то так:
    ip ru a table 1 fwmark 1
    ip r a default via <1 ips gw> t 1
    ip ru a table 2 fwmark 2
    ip r a default via <2 ips gw> t 2
    iptables -t mangle -I PREROUTING -m conntrack --ctstate NEW -i <eth ips 1> -j CONNMARK --set-xmark 1
    iptables -t mangle -I PREROUTING -m conntrack --ctstate NEW -i <eth ips 2> -j CONNMARK --set-xmark 2
    iptables -t mangle -A PREROUTING -m connmark --mark 1 -j MARK --set-mark 1
    iptables -t mangle -A PREROUTING -m connmark --mark 2 -j MARK --set-mark 2
    Ответ написан
    3 комментария
  • Connection refused при попытке соединить spring-сервис и postgresSQL db в докере. Почему?

    @D3lphi
    При обращение к хосту контейнера нужно использовать не внешний порт, а внутренний: db1:5432
    Ответ написан
    Комментировать
  • Имитация веб-камеры - как автоматизировать на python (linux)?

    Vindicar
    @Vindicar
    RTFM!
    Извини, а у тебя ничего не ёкнуло вот тут?
    sudo apt install v4l2loopback
    pip install v4l2loopback
    Ты понимаешь разницу между этими двумя командами?
    Первая - задействует системный менеджер пакетов для дистрибутивов на базе debian (deb-пакетов).
    Вторая - задействует встроенный менеджер пакетов питона.
    Это совершенно разные вещи, и они работают с совершенно разными репозиториями.
    Установить deb-пакет в систему, на которой будешь тестить, достаточно будет один раз.
    Прописать мод можно в /etc/modules, но можно и тупо делать modprobe при загрузке системы.
    И то и то, я полагаю, можно сделать хоть на живой системе, хоть внутри докера.

    После этого в автотесте запускаешь ffmpeg, можно даже тупо через subprocess вместо питоновских модулей. Сюрприз, сюрприз! Они все, насколько я знаю, именно так и делают под капотом. Я не видел модуля, который бы имел интегрированный ffmpeg.
    Ответ написан
    3 комментария
  • Скрипт на bash для мониторинга таблицы из Postgresql?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Не имеет отношения к postgresql. Чисто bash

    DB_NAME = foo - это команда
    DB_NAME=foo - это переменная
    Ответ написан
    Комментировать
  • Как лучше устраиваться, по ИП или ТК РФ?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Конечно же по ТК :) Потому что только при устройстве по ТК есть "работник" и "работодатель". При работе с ИП ничего такого нет, есть просто контрагент. Другая модель отношений, понимаете? В отношении работника у работодателя куча ( да нет, даже КУЧА) обязанностней - от оплаты отпуска до проблем с травматизмом (не говоря уже про беременность и декрет), в отношении ИП - ничего такого нет :)

    Отношения с ИП очень простые - договор на поставку товаров или оказание услуг и соответствующие закрывающие документы.

    ВСЕ.

    Как ИП ведет свой бизнес - пофиг. Причем оплата товаров/услуг регламентируется совершенно другими законами, нежели выплата зп работнику :) Работать с ИП очень выгодно работодателю, но крайне не выгодно работнику (который ИП).
    Легко уволить, не выплатив даже увольнительные, легко уволить также со стажировки?

    Нет такого понятия. ИП не "принимают на работу" поэтому его нельзя "уволить". С ИП заключают договор. Который да, можно расторгнутьв любое время. Да, там могут быть санкции за досрочное расторжение - ну тут уж как пропишете. Договор - Ваш единственный правоустанавливающий документ.
    Ответ написан
    Комментировать
  • Потеря связи в боте telebot, в чем могут быть проблемы?

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

    remote end closed connection without response
    а это вторая, причиной этого может быть превышение лимита запросов на сторонний сервис, а может просто проблемы с сетью, как следствие первой причины

    Надо делать правильно, нормальный хостинг и webhook.
    Ответ написан
    Комментировать
  • Как настроить авторизацию в telegram боте?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Идея? Есть отличная оригинальная идея - немножко подучиться программировать на выбранном вами языке. Не искать карьеру разработчика ботов беззнания программирования, а именно подучить язык и основы алгоритмизации.
    А задача ваша решается просто. Начать надо с декомпозиции.
    При запуске бота вам нужно открыть этот текстовый файл и загрузить его контент в структуру, и, если не получилось, то создать пустую структуру.
    Если пользователь, нажавший у бота кнопку старт не найден в этой структуре, то бот должен запустить сценарий регистрации. Что вы под этим понимаете? Вопросы какие-то задать пользователю и сохранить ответы?
    При окончании регистрации нужно сохранить структуру в файл.

    С каким именно пунктом вам что-то не ясно?
    Если со всеми, то нужно учиться программировать,а ботов писать вам рано. Попробуйте взять учебник и читать по порядку. первый раз быстро и не останавливаясь, а второй раз вдумчиво и выполняя все задания.

    После этого у вас вот эти вот вопросы отпадут все.
    Ответ написан
    Комментировать
  • Как инициализировать переменную раньше функции в Python?

    Maksim_64
    @Maksim_64
    ML Engineer
    Что то ты с кодом ты напутал. Список может быть изменен из функции. Внутри функции python работает следующим образом.
    1. Первым делом python смотрит есть ли ключевое слово global

    2. Вторым есть ли ключевое слово nonlocal

    3. Третьим в параметрах, если там имя есть то переменная становится локальной.

    4. Если переменная упоминалась (но не было определена) то python смотрит на нелокальную область видимости.

    5. Если переменная упоминалась (но не было определена) и не найдено в нелокальной области видимости то смотрит в модуле

    6. Если и там не нашел то в встроенных пример max,min и т.д.

    a = 1
    b = 2
    c = 3
    
    def func():
        print(a,b,c)
    
    if __name__ == "__main__":
        func()
    Работает, как ожидается, а теперь маленькое изменение
    a = 1
    b = 2
    c = 3
    
    def func():
        print(a,b,c)
        c = 100
        print(c)
    
    if __name__ == "__main__":
        func()
    И все ошибка даже print(a,b,c) не выполнится. Потому что с находится в локальной области видимости функции python ее находит и также он находит ее упоминание (print(a,b,c)) до ее определения.

    def func():
        global c
        print(a,b,c)
        c = 100
        print(c)
    
    if __name__ == "__main__":
        func()


    Вся это проблема актуальна только для НЕ мутабельных типов например
    a = [0]
    b = [0]
    c = [0]
    
    def func():
        print(a,b,c)
        c.append(100) 
        print(c)
    
    if __name__ == "__main__":
        func()

    Все работает как и ожидается. Ну и пару слов об использовании global. Я персонально не сторонник утверждения никогда не используй global Но безусловно данная конструкция актуальна для не локальной области видимости то есть вот так.
    def func():
        total = 0
        def inner():
            nonlocal total
            total +=1
            return total
        return inner
    
    
    if __name__ == "__main__":
        add = func()
        print(add())
        print(add())
        print(add())
    Если убрать ключевое слово nonlocal то мы получим ошибку.
    Ответ написан
    Комментировать
  • Как правильно организовать репозитории?

    @vitaly_il1
    DevOps Consulting
    Я не программист, а DevOps, использую репо/организацию заказчика.
    Честно говоря, не понимаю, как/зачем использовать свой аккаунт - как тогда передавать код заказчику?
    Ответ написан
    4 комментария
  • В чем проблема плагинов "раскрашивания" скобок для IDE?

    @Everything_is_bad
    Нет никакой проблемы, и не нужно из чисто субъективной вещи, пытаться ее придумывать, кому-то нравится, кому-то нет, вот и всё.
    Ответ написан
    Комментировать
  • Можно ли использовать кириллицу в Active Directory?

    @Drno
    лучше всегда и везде в таких местах использовать латиницу. кто его знает что сломают в следующем обновлении)
    Ответ написан
    Комментировать
  • Почему Kubuntu и другие дистрибутивы называет стоковые папки кириллицей?

    hint000
    @hint000
    у админа три руки
    Это не папки, а сивольные ссылки на папки. Сами папки латиницей. Desktop, Documents, Downloads, Music, Pictures, Videos.
    $ cat ~/.config/user-dirs.dirs
    # This file is written by xdg-user-dirs-update
    # If you want to change or add directories, just edit the line you're
    # interested in. All local changes will be retained on the next run.
    # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
    # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
    # absolute path. No other format is supported.
    # 
    XDG_DESKTOP_DIR="$HOME/Desktop"
    XDG_DOWNLOAD_DIR="$HOME/Downloads"
    XDG_TEMPLATES_DIR="$HOME/Templates"
    XDG_PUBLICSHARE_DIR="$HOME/Public"
    XDG_DOCUMENTS_DIR="$HOME/Documents"
    XDG_MUSIC_DIR="$HOME/Music"
    XDG_PICTURES_DIR="$HOME/Pictures"
    XDG_VIDEOS_DIR="$HOME/Videos"

    Откуда это всё?:
    Есть такой стандарт.
    https://specifications.freedesktop.org/basedir-spe...
    https://ru.wikipedia.org/wiki/Freedesktop.org
    Ответ написан
  • Почему камера HIWATCH не zoom'ится регистратором DAHUA?

    @Alexii666 Автор вопроса
    кнопкой на камере (типа джойстика) переключился в CVi режим и все заработало))))))))
    Ответ написан
    2 комментария
  • Как убрать распознавание, некоторых объектов в YOLOv8?

    Здравствуйте! Если Вы используйте метод predict или просто обращаетесь к экземпляру model(), то Вы можете использовать атрибут classes. Он принимает список с id классов, которые будут распознаны.

    id классов можно найти в .yaml файле для обучения модели. в случае в датасетом COCO, на котором обучена модель YOLO, которая идет в этой библиотеке, этот файл можно найти по ссылке https://github.com/ultralytics/ultralytics/blob/ma...

    from ultralytics import YOLO
    
    # Load a pretrained YOLOv8n model
    model = YOLO('yolov8n.pt')
    
    # Run inference on 'bus.jpg' with arguments
    model.predict('bus.jpg', save=True, imgsz=320, conf=0.5, classes=[0,1])
    
    #или так
    #model('bus.jpg', save=True, imgsz=320, conf=0.5, classes=[0,1])


    вот ссылка на документацию https://docs.ultralytics.com/modes/predict/#infere...

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

    @Everything_is_bad
    Варианты:
    1. Сесть и нормально разобраться с Django ORM, там очень много возможностей. Так же для работы с ним надо перестать думать уровнем SQL, т.е перейти на уровень взаимодействия между models
    2. Либо нанять нормально программиста, он за тебя это перепишет.
    Ответ написан
    Комментировать
  • Pandas, может ли он задавать ширину столбца при записи в excel таблицу?

    Maksim_64
    @Maksim_64
    ML Engineer
    Пандас использует различные "writer's" для записи файлов. Говоря об xlsx файлах, по умолчанию это XlsxWriter (это не единственный ты можешь использовать другие, у методов по типу to_excel, есть параметр engine).

    Как осуществляется взаимодействие и настройка вывода там в принципе все что угодно можно читать здесь https://xlsxwriter.readthedocs.io/working_with_pan...

    также в меньшей степени но можешь перичитать доки к to_excel методу. Там есть пару примерчиков как использовать XlsxWriter. Но основное по ссылке.
    Ответ написан
    Комментировать
  • В VSCode не импортируется библиотека Filters, что бы не делал, никак не хочет подхватываться. У кого была такая же проблема? Как можно это пофиксить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    VSCode тут вообще не при чём, импорт выполняется в питоне, а не в редакторе кода.
    С версии 20.0 модуль Filters был полностью переписан. Подробно читайте здесь:
    https://docs.python-telegram-bot.org/en/stable/tel...
    Ответ написан
    Комментировать
  • Как решить эту задачу?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    У вас 7 неизвестных и 3 уравнения. Так что однозначно вы найти значения переменных никак не сможете. Но и найти вам надо какую-то сумму. Есть шанс, что как-то комбинируя, складывая, вычитая и домножая левые части этих уравнений можно получить искомую сумму. Иными словами, вам надо вектор (16, 25..100) представить в виде линейной комбинации векторов (1, 2..49), (4, 9..64) и (9, 16..81). Обратите внимание, что там везде получаются суммы трех квадратов равны следующему.

    Вам надо подобрать такие 3 коэффициента, что x*n^2 + y(n+1)^2+z(n+2)^2 = (n+3)^2. Для n=1..7. У вас тут квадратные многочлены от n получаются, равны они в 7 точках, так что они должны быть равны вообще при любых n. Значит, вам надо раскрыть скобки, сгрупировать степени n и приравнять к 0 все коэффициенты.

    Так вы получите 3 уравнения на 3 переменные x, y, z.
    x+y+z=1
    2y+4z=6
    y+4z=9

    Отсюда получается x=1 y=-3 z=3

    В итоге получаете 1*1-3*12+3*123 - это ваш ответ.
    Ответ написан
    2 комментария
  • Какое лучшее приложение терминала (локального) для Android?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Есть терминалы под сам андроид, без какой-либо обвязки и утилит, что в системе есть - тем и пользуйся. Ничего сравнимого с Termux, у которого есть готовая мини-система, пакетная база и пакетный менеджер.

    Нужно ещё понимать, что с какого-то SDK Level приложения больше не могут делать exec и запускать другие приложения соответственно. А с более низким SDK Level больше невозможно пройти review у гугла. Поэтому Termux нынче распространяется через сайт в виде apk-файла, а не из магазина.

    А чем Termux не угодил? Всё остальное всё равно никак по фичам не дотягивает.
    Ответ написан
    Комментировать
  • Как изменить строчку кода HTML на чужом сайте tampermonkey?

    byte916
    @byte916
    1. Установите в браузер дополнение, которое делает js-иньекции в сайт. Например, в Firefox первое что нашлось - JS Injector.
    2. Добавьте в этом приложении, для нужного сайта такой код:
    document.querySelector('[placeholder="Employee ID"]').type='';
    Ответ написан
    1 комментарий