• Ошибка аргументоа (мешает self), что делать?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    def download(link, path, mp, self):
    Нужно задекорировать метод как классовый или сттический. Если классовый, то надо указать первым аргументом cls
    Ответ написан
    Комментировать
  • Как скормить звук python чтобы после его распознания выполнялось действие?

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

    На ваш вопрос было бы проще ответить, если бы вы привели в качестве примера звуки, на которые нужно сделать специфическую реакцию, продемонстрировали какие шумы (в худшем случае) могут накладываться на звук, а также звуки, которые похожи на требуемый, но недостаточно, чтобы программа реагировала на него, как на нужный.
    Тогда можно уже, вооружившись опытом и знаниями, поискать решение вашей проблемы.
    Может быть вам подойдёт сравнение фурье-спектров референсного звука и распознаваемого. Может быть достаточно реагировать на специфический ритм щелчков, а может быть придётся прибегнуть к смеси этих методов отфильтровав звуки в виде фурье-образов, а потом результат фильтрации выравнивать по фазе и сравнивать семпл-по-семплу с некоторой точностью.
    Может быть вас устроило бы дискретизировать звук после фильтрации и сравнивать их.

    В любом случае звук - это массив чисел длинной Частота_дискретизации*Длительность.
    Этот массив можно обрезать по тишине слева и справа, выровнять по уровню, оценить поместится ли в оставшийся фрагмент искомый звук. Потом нужно понимать, что оставшийся массив - это многомерный вектор. Он указывает в некий объём многомерного пространства. Какие-то сати этого пространства "похожи на некий образцовый звук", а какие-то нет. Нужно написать функцию, принимающую вектор и возвращающую число - степень похожести звука на образец. Это делается нормированием.

    Надо понимать, что к полезному примешивается обычно шум. Шумы имеют разные источники и их нужно уметь различать. Есть простой гауссовский шум, есть какие-то помехи и щелчки, которые будут соперничать с уровнями и частотами полезного сигнала.

    Изучать нужно по теме "Цифровая обработка сигналов", "сравнение звуков"
    Ответ написан
    3 комментария
  • Как прекратить вращение тела в игре?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Поставь "трение" на угловую скорость. Ну, в смысле, можно домножать угловую скорость на коэффициент меньше 1, а когда станет ниже порога, то обнулить. Или просто обнуляй угловую скорость, когда объект ляжет на грунт и выровняется.
    Ответ написан
    Комментировать
  • Как можно распарсить текст на python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Схема проста и есть несколько вариантов:
    1) Пойти к фрилансерам и купить решение. Это самый простой быстрый и дешевый способ.
    2) Самостоятелбно:
    - Изучить основы питона
    - Разобраться что такое регулярные выражения
    - Написать функцию, которая из строки достаёт 2 нужных значения.
    - Применить функцию ко всем строкам.
    - ...
    - Профит!

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

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    жесть.
    1) правильно подсказали, что эта сумма вычисляется за одно действие.
    2) так нельзя обменять две переменные значениями
    start = end
    end = start

    3) питон позволяет сделать это одним присвоением: a, b = b, a
    Ответ написан
    Комментировать
  • Почему не работает throttled в aiogram?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Всё правильно вам подсказали, надо изменить порядок декораторов, они коммутативны.

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Смотря какие будут количества запросов. Есть же https://overpass-turbo.eu/, который может искать, если составить запрос по шаблону. Можно его в виде WEB API использовать. Результаты, можно получать в GeoJSON и его уже отображать на каком leaflet или аналогах.

    Прелесть OSM в том, что его можно выкачать, и если ваш проект достаточно бОрзый по вычислительным ресурсам и стораджу, то можно отображать данные со своих носителей и рендер свой можно настроить и тайловый кэш. Всё это есть с инструкциями в сети. Ну судя по (отсутствующей) детализации вопроса вам может оказаться это всё поднять не под силу. Оно ж гуглится всё легко.

    А, стоп, там про адрес же, а я думал по ключевым словам и боунд-боксу. Ну да, нужно поднимать сервис геокодирования. Вот, кстати попалась первой ссылкой достаточно развернутая статья. А ещё вот у ДаДаты есть сервис геокодирования, не знаю какие там лимиты для бесплатного использования.
    https://nominatim.org/ уже предложили выше в ответе.

    Тоже соглашусь, что соблазн юзать бесплатный ОСМ выльется в ограничения, лимиты, невысокую скорость и, если поднимать локальные опенсорсные сервисы, не мало человекочасов девопса.
    Ответ написан
    Комментировать
  • Как ускорить аудио под необходимый длину?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А что, пропорции в школе не учили считать?
    704 -- 1
    720 -- x
    Догадаетесь что на что умножить и что на что разделить надо?
    Только вот от таких манипуляций наверняка будут искажения и ухудшится качество. Зачем такое делать? Просто для красивой длины оно того не стоит. Это как ресайзить jpeg который уже в экранном разрешении на несколько десятков пикселей. Волна искажений пройдёт по всей картинке, возможно появятся ступеньки и артефакты. Но для картинок ресайз ещё можно как-то оправдать (хотя не низкого разрешения), типа надо куда-то встроить изображение, а вот с длительностью аудио не понятно зачем эта "красота".
    Ответ написан
    Комментировать
  • Как сделать выдачу статики с параллельным вызовом fastcgi без ожидания его завершения?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А для чего вам такое странное поведение?
    Вообще тут много вопросов из вашей постановки вытекает. Очень тревожных и странных вопросов.
    Начать можно с чего. Вы ставите вопрос так, будто хотите передавать данные "в скрипт". Надо перестраивать ход мысли. Вы передаёте данные в некий сторадж. Это может быть некая структура в памяти процесса (например вашего FastCGI-сервера), или в БД (postgres, sqlite, clickhouse, redis), или в очереди какой-нибудь (rabbit, кафка)... Данные не могут передаваться в код. Разве что в виде параметров и аргументов.
    Опять же, ваш FastCGI может быть запущен в нескольких инстансах, как вы будете заботиться о синхронзации? Прочитайте про CAP-теорему. Если вы городите какое-то самодельное решение, то вам придётся как следует понимать суть этой теоремы, проблемы, которые она обрисовывает и то, на каких двух стульях из трёх вы хотите сидеть.

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

    Вообще лучше всеми этими вопросами не грузить ваш nginx, хотя там можно даже lua-скрипты встраивать с нетривиальной логикой. Для некоторых нужд можно парсить, например, логи nginx-а. Настроить так, чтобы в нужный пайп сыпалось только то, что требуется и отдельным микросервисом его вычитывать и делать что там вам требуется. Агрегировать? Статистику считать? Журналировать?
    Так же можно поднять какую-то очередь и заставить nginx туда писать по факту обращений.
    Вообще там много вопросов будет. А что если к файлу обратились, но контент не качали, только заголовок? А что если разрыв соединения? А что если один большой файл много раз фрагментами докачивали? А что если кто-то себе поставил перед вашим сервером кэширующий прокси?

    Теги вашего вопроса следует привести в соответствие с правилами. Тег Python не нужен, ведь вы не привели никакого кода и к питону ваш вопрос совершенно никакого отношения не имеет.
    Ответ написан
  • Как сделать плавный рывок для персонажа?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Посмотрите внимательно на содержимое цикла. Там условие выхода из цикла привязано к счетчику, а счетчик увеличивается только при некотором условии. Другими словами, если случилось так, что это условие неверно и вы в цикле, то счетчик не будет меняться и проверка условия будет молотить вечно, ведь ничего не меняется. Так получается бесконечный цикл.
    Вообще такие вещи лучше описывать параметрически. То есть можно описать функцию, которая возвращает координату абсолютную от времени.
    Обычно это делается так. Описывается класс, потомки от которого будут описывать характер движения. Паттерн называется "Стратегия".
    У персонажа есть состояние, например "равномерная ходьба". Это состояние определяет стратегию движения. То есть когда началась равномерная ходьба, создаётся инстанс этой стратегии, который запоминает время начала ходьбы, начальные координаты и определяет скорость. У стратегии движения есть метод, который возвращает координату от абсолютного времени. Под капотом из этого времени вычитается время начала движения, а потом по простой линейной формуле можно вычислить координату персонажа на любое заданное время. Как только состояние персонажа сменяется на "Рывок", создаётся новый инстанс новой стратегии под названием "Рывок". Она определяет внутри другую функцию вычисления координаты от времени. Скорость тоже может быть задана функцией внутри реализации стратегии.

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    https://grafana.com/
    Есть и другие, но это по описанию подходит лучше всего.
    А данные надо хранить в БД, а не в экселе
    Ответ написан
    Комментировать
  • Как дружить сторонние ZigBee с Яндекс станцией?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    У меня вот такой вот хаб: https://aliexpress.ru/item/1005005669706698.html?s...
    Через интеграцию Tuya с алисой мгновенно подхватывает все устройства, и bt и зигби.
    Нареканий к нему вообще никаких нет. Накупил кучу дешманских блютусных датчиков из раздела всё за 180 на али (https://aliexpress.ru/item/1005005234497671.html?s...). Всё прекрасно работает. Вкупе с вайфай-розеткой отлично управляет вентиляцией в ванной по влажности.

    Весь свет у меня вот на таких модулях: https://aliexpress.ru/item/1005005721310513.html?s...
    Дёшево (брал по 180₽ и сейчас если попадается, то беру, но важно, чтобы именно Tuya), зато очень сердито. Поддерживает проходные выключатели, помещается в подрозетник если надо, управляется обычным выключателем. Один минус - wifi, но работают они очень хорошо, так что это от перфекционизма, что ли... Есть такие же варианты с зигби, но они дороже, у меня один есть, он еще не подключен.

    У меня Алисы старые, ещё без поддержки зигби, так что не знаю как она с этим протоколом будет работать. Шлюз что выше показывал отлично решает вопрос. Ещё есть розетка зигби, она стоит в другом конце квартиры чтобы расширять сеть, однако такое ощущение, что bt работает дальше.
    В хозяйстве одна только яндекс-розетка. Никакого смысла брать дорогую вместо дешевых вайфай не вижу.
    В общем, у меня сплошной зоопарк из (перманентно) wifi, zigbee и bluetooth устройств, но работает всё на редкость неплохо. При этом я еще HomeAssistant не настраивал. Не знаю как у моих приборов будет с локальностью. Роутер все вайфаи тянет без проблем, хотя перечень клиентов в админке пугал поначалу.
    Ответ написан
    Комментировать
  • Есть ли в продаже аналоги Wi-Fi-реле, но без фиксации (имитация кратковременного нажатия кнопки)?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А в чем проблема нажать и сразу отжать?
    Можно вот такие брать: https://aliexpress.ru/item/1005005468411724.html?s...
    Или аналогичные есть сразу на 4 канала: https://aliexpress.ru/item/1005004220107361.html?s...
    Можно доработать их добавив вот такой таймер: https://aliexpress.ru/item/1005004338414902.html?s...

    Да и разрабатывать-то ничего особо нынче не надо, вот пример модуля https://aliexpress.ru/item/1005001573163153.html?s...
    Для него в сети есть опубликованные прошивки
    Ответ написан
  • Как разрешить импорт в python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Никто вам импорты не запрещал. Обычно одной лекции не хватает, чтобы научиться программировать. Вам нужно понимать что такое встроенные и сторонние библиотеки. Вам нужно найти инструкцию по установке tensorflow на ваш компьютер. Это тривиальные базовые основы программирования, без таких знаний вам рано решать вашу задачу. Начните изучать язык с учебника.

    На этом ресурсе не готовят индивидуальные персональные уроки и инструкции по освоению базовых тривиальных принципов. Учиться надо самостоятельно.
    Ответ написан
    Комментировать
  • Бот для телеги на python, как лучше оптимизировать?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    И как вы предлагаете провести аудит вашего кода без публикации этого кода?
    Не понятно же что и как вы там храните в памяти.
    Правильная архитектура и логирование легко позволяют отслеживать и находить утечки памяти. Часто потенциальные места видно по коду. Я так понимаю кроме утечек памяти у вас там не мало и других проблем, например ненадежное хранение состояния длительных процессов в случае перезапуска сервиса.
    Если правильно построить архитектуру вашего сервиса и использовать персистентные хранилища (например БД) для промежуточных состояний, то даже утечки в сторонних внешних библиотеках для вас не будут проблемой, поскольку вы всегда можете ограничить ресурсы и безопасно перезагружать сервис на любом этапе его работы при недостатке памяти.
    Ответ написан
  • Почему не работает сайт на GitHub Pages?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    /assets/images/icon-reaction.svg
    Прочитайте чем отличаются абсолютные пути и относительные. Вот это абсолютный. Уберите первый слеш.
    ./js/main.js - тут тоже "./" лишние, но влиять это на работу не дролжно.
    Чего именно вы ожидаете вообще от своего кода?
    Ответ написан
  • Напомните библиотеку/технологию чтобы переводить хеши в мнемоничный человекозапоминаемый вид (что-то вроде "бла-бла-кода")?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    А вы пробовали искать на гитхабе или в гугле прежде чем сюда приходить? Ну вот например https://pypi.org/project/xkcdpass/
    Обычно делается алгоритм, который составляет грамматически верное предложение из рандомных слов. Слова берутся из словаря, где они определены по частям речи. Входной хеш используется в качестве сида для фиксированного алгоритма генерации псевдослучайных последовательностей. Этот алгоритм на базе сида выбирает по очереди слова для шаблона из словаря. Что может быть проще?
    Ответ написан
    1 комментарий
  • Существуют ли модули Arduino со встроенным блоком питания?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Принципиально именно этот корпус? https://aliexpress.ru/item/4001203517149.html?sku_...
    Не поместится.
    А вот этот легко https://aliexpress.ru/item/32413364849.html?sku_id...
    Но там не с сетевого, конечно. Не с 220В
    Ответ написан
  • Как решить ошибку TypeError?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Ошибка тут F:\pythonProject\parcer_tg\parcer_functions.py
    Ответ написан
    Комментировать