• Pycharm не подсказывает код по opencv-python, как исправить?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Говорят вот хардлинком библиотеки лечат https://stackoverflow.com/questions/5049842/autoco...
    Ответ написан
    Комментировать
  • SSH туннель, как получить доступ к приватному компу за нат с сервера на котором поднят туннель?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    https://habr.com/ru/post/331348/
    https://habr.com/ru/post/81607/
    https://habr.com/ru/post/435546/
    https://habr.com/ru/post/249515/
    Это ж как вас угораздило быть забаненным в гугле и яндексе одновременно?

    Вы можете пробросить любой порт обратным прокси с занатновой машиной на впс.
    Или расшифруйте уж подробнее что имеете в виду под "получить доступ к компу за нат с ВПС".
    И да, вам правильно в комментариях говорят, не надо изголяться, а надо использовать VPN и все ваши компы будут в одной сети.
    Ответ написан
  • Возмодно ли любым способом скачать pysharm на андроид?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Скачать можете, установить и запустить не получится.
    Но можно арендовать VDS на одном из многочисленных хостингов, ставьте туда ОС, например убунту или лучше что-то менее прожорливое. Ну и там можно поставить пичарм. Работать придётся через удаленный десктоп, что не чень комфортно.

    Можно поискать подходящую вам браузерную IDE.
    https://visualstudio.microsoft.com/services/visual...
    https://github.com/features/codespaces
    Ответ написан
    Комментировать
  • Данный вопрос уже был, но это другое. Как боту отправить сообщение пользователю, зная его id?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А в чем проблема, собственно? Фактически у вас два бота: один для клиента, другой для менеджера.
    Я бы это реализовывал как отдельные сервисы, которые между собой обменивались бы информацией через БД.
    Обычно клиентов больше, чем менеджеров и у ботов разная функциональность. Нет смысла пихать её в одно приложение.
    Заменяйте БД на постгрес, поднимаете ботов и БД в разных докер-контейнерах.
    Клиент сделал заказ, заказ упал в таблицу заказов со статусом "не обработан".
    Бот менеджера время от времени проверяет наличие необработанных заказов в бд и присыдает сообщения о них менеджерам.
    Ответ написан
  • Почему SQL запрос ничего не возвращает?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Потому, что last_time вы извлекаете без учета client_id, а потом добавляете это ограничение и, очевидно, по этому пользователю не было ни одной записи за эти секунды, а были по другому пользователю.

    но говнокод тот еще, конечно. Не удивительно, что для вас не прозрачна причина такого поведения кода, когда он так плохо написан.

    Короче, в первом зпросе забыли добавить "WHERE client_id =..."
    Ответ написан
  • Существует ли компилятор в BASH?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    До чего же много извращенцев всяких в интернете.
    Ваш странный вопрос легко гуглится https://github.com/jcampbell05/bashjs
    Ответ написан
    Комментировать
  • У меня на удаленном VDS работает сайт НЕ в докере, могу ли я как-то удаленное окружение самостоятельно поместить в докер, и запустить локально?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Для пошагового гайда или даже более-менее полезного ответа вы не предоставили почти никаких данных.
    Смысл докера в изоляции отдельных сервисов и программ в отдельных контейнерах так, чтобы они не конфликтовали за ресурсы (порты, файловую систему, зависимости от библиотек) и никак не мешали друг другу.
    LAMP - это линукс, апач, mysql, php. Если всё делать в докере, то у вас будет отдельный контейнер для БД. Его можно без изменений брать с докерхаба стандартный.
    Не разбираюсь в этих ваших ПХП, но если бы бэк у меня был на питоне, я бы использовал nginx и тоже подняол бы его в отдельном контейнере. ьно бэкенд тоже поднимал бы в отдельном контейнере. Всё это оркестрировал бы докер-компоцзом.
    Вам следет пойти на гитхаб и поискать пример LAMPовых проектов, с компоуз-файлом. Какие-нибудь популярные, простые и звездатые. Там и подсмотрите как организовать всё.

    Просто брать всё что у вас на ВПС и пихать в один контейнер смысла нет.
    Ответ написан
    3 комментария
  • OpenCV Python. Как работают координаты прямоугольника?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    В любой документации, гуглится с первой попытки.
    Это координаты противоположных углов прямоугольника.
    Ответ написан
  • Как организовать одновременную работу Telegram бота (Aiogram) и Flask?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Не надо их смешивать. Просто сделайте отдельно и пусть подключаются к одной БД. Так будет и надёжнее, и безопаснее, и призводительность будет выше, и проще всё это будет устроено, что не мало важно.
    Даже запускал бы я эти процессы в разных докер-контейнерах. Микросервисаня архитектура, масштабирование, прозрачность, элегантность и гибкость.
    Стартуете всё одним compose-файлом, а если будет не хватать в будущем, то куберовский кластер можно будет пристегнуть и нигде не упрётесь в нестандартные проблемы.

    Не изобретайте себе приключения на пустом месте.
    Ответ написан
    2 комментария
  • Закрывается ли в таком случае поток и невредно ли так делать?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы плохо сформулировали вопрос.
    В конкретно этом коде тред даже не запустится. Нигде не вызывается a().
    Если в конце модуля с этим куском кода все же вызвать a(), то тут не будет ожидания выполнения треда. а значит успеет он выполнится или нет, и на сколько успеет - вопрос везения.
    В любом случае при закрытии интерпретатора все ресурсы высвобождаются, а значит всё закроется.
    Однако, полагаю, вопрос ваш немного глубже и сложнее, ведь вы сами себя обманули абстрактностью этого примера. При каких обстоятельствах у вас запускается этот тред и что происходит в коде после запуска вы не указали.
    Ответ написан
  • Как определить папку в Python по имени+дате создания?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    У вас в таком случае может возникнуть нестыковка. Нужно определиться о каком времени идет речь: о том, что указано в имени файла, или о дате\времени создания каталога?
    Переименование каталога может нарушить работу вашего алгоритма.
    Как я понял вас бы устроила сортировка по тому времени, что указано в имени файла.

    Общий порядок решения вашей задачи такой:
    1. Получить список каталогов из определенного места файловой системы и чтобы они соответствовали некоторому формату заданному маской. Используйте стандартный (в третьем питоне) модуль pathlib. Там у пути есть метод glob.
    2. Получившийся набор имен нужно разбить на составляющие:
    - выделить префикс
    - выделить дату\время
    3. Отсортировать список каталогоа по выделенному времени, взять нужный каталог.
    4. Сформировать из выделенных в п.2 компонентов новое имя и создать каталог с новым именем.
    Ответ написан
  • Как получить последний элемент столбца?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    К соседнему ответу могу добавить.
    Если Id у вас формируется автоинкрементом, то можо ограничить выдачу select-запроса одним элементом и указать обратный порядок сортировки по нужному вам полю.
    Ответ написан
    Комментировать
  • Как округлить число на python до сотых?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Напомню на всякий случай, что не каждое десятичное число можно представить конечным количеством двоичных знаков. Это как 1\3 в троичной системе будет просто 0.1, а в десятичной 0.333(3).
    Это значит, что округлять с помощью round не всегда хорошая идея.
    К примеру, десятичное число 0.2 предствляется периодической бинарной дробью.
    Смотрите:
    In [1]: f'{0.2:.30f}'                                                          
    Out[1]: '0.200000000000000011102230246252'

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А в чем, собственно, проблема? Веб-интерфейс - нормальный вариант. Сделайте его бэкенд на flask, фронтом будет простенькая страничка. Можно в рамках MVP аставить её обновляться с некоторой периодичностью, а можно перезагружать только одну картинку. Потом уже можно и вебсокеты прикрутить, если чем-то не устроит простой вариант, чтобы пуши с сервера прилетали и всё такое, но зачем?
    Ответ написан
    Комментировать
  • Как разбить строку на спискок?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Не стоит изобретать велоссипедов.
    В современном питоне есть замечательный модуль pathlib, который отлично работает с путями, файлами и директориями. Там есть всё, что нужно дл яправильной работы.

    Если нужно работать с неродными для вашей оерационной системы путями (например виндовыми из под линукса), то там есть специальный класс для этого:
    > p = pathlib.PureWindowsPath("E:\python\pycharm\fl\exel\ids.xlsx") 
    > p.parts
    ('E:\\', 'python', 'pycharm\x0cl', 'exel', 'ids.xlsx')

    Если вы работаете с путями нативно, то ещё прозе, модуль сам будет спользовать нужные классы:
    > p = pathlib.Path("E:\python\pycharm\fl\exel\ids.xlsx") 
    > p.parts
    ('E:\\', 'python', 'pycharm\x0cl', 'exel', 'ids.xlsx')

    Но под линукс такой код не поймёт чего вы от него хотите при передаче винлового пути. Для линукса это просто одно имя в текущем каталоге (слеши не те, двоеточие допустимо для употребления в имени).
    Ответ написан
    Комментировать
  • Как сделать цвет светлее?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    В простом случае достаточно домножить каждую компоненту цвета на некий коэффициент, который чуть больше единицы, округлить и собрать новый увет.
    Можно перевести цвет из RGB в LAB и прибавить немного к компрненте L, а за оттенок в этом формате отвечают компоненты A и B, так что их оставляем неизменными.
    Если заморочитьс яглубже, то есть много статей в сети про то, как устоен цвет, как воспринимаются цвета, яркость и прочее. Вот пример: https://habr.com/ru/post/304210/
    И таких статей полно. Если вам нужно что-то вроде этого, то вы, видимо, просто не пытались искать.
    Ответ написан
    Комментировать
  • Как сформировать подсказки в Python при написании кода?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Чтобы IDE делало автоматические контекстные подсказки при написании кода, нужно писать код с докстрингами, указывать типы аргументов, не злоупотреблять "магией" с геттерами, сеттерами, метаклассами, декораторами, замыканиями и прочей эквилибристикой с кодом. Чем проще и каноничнее код, тем проще IDE его анализировать.

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Нужно сперва научиться пользоваться гитом.
    Создайте пустой репозиторий на гитхабе, склонируйте его себе на жесткий диск, добавьте в этот каталог исходники и через IDE добавьте под контроль версий файлы исходников. Нужно искючить тяжелые файлы с бинарными ресурсами вроде графики, звука и прочих бинарных данных. Сделайте коммит. Сделай те пуш в origin.
    Ответ написан
    Комментировать
  • Как упростить команду в bash?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Serials_destination2=$(find "$SerialsFolder" -type f -iname "$WhatRenameFile" | sed -n '1p'  ); Serials_destination=$(dirname "$Serials_destination2" ); mv "$WhatFolder"/* "$Serials_destination"
    Ответ написан
    Комментировать
  • Как поменять направление вращения электродвигателя?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    RoGgY_000 всё ответил верно, но я вижу, что вам было бы полезно ещё знать вот про этот ресурс: https://alexgyver.ru
    Там много статей и подборок компонтентов. У автора сайта есть канал на ютубе с кучей образовательных материалов, которые вам должны показаться интересными.
    Там же есть и подборка драйверов для двигателей:
    https://alexgyver.ru/arduino_shop/#УПРАВЛЕНИЕ_НАГР...
    Там же есть статья как подключать такие моторы разными способами: https://alexgyver.ru/lessons/dc-motors/
    Ответ написан