Ответы пользователя по тегу Программирование
  • Достать данные гироскопа и акселерометра из экшен камеры или видео?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Мне кажется самым простым будет отдельный компактный автономный гиро-трекер, к которому бы крепилась экшн-камера.
    Вроде бы, (могу ошибаться), я не слышал, чтобы какая-то камера умела писать данные акселерометров в поток видео. Вроде технически ничего не мешает писать их, например, в виде отдельной звуковой дорожки. Подключаться к кишкам работающей камеры - тоже видится мне дохлым номером и, даже в случае успешности, не масштабируемым решением.

    Вопрос форм-фактора открытый, но идея гиротрекера - очень годная идея.
    Сейчас практически все камеры на борту имеют Wifi. Можно попробовать сделать гиротрекер на базе белкой ESP8266 с wifi. Синхронизацию времени с камеры можно брать по wifi. Даже подкидывать на флешку камеры файлы с гиро-треками можно, если API позволит.
    Ответ написан
    5 комментариев
  • Логгирование Python, как быстро сделать вывод ошибок в файл?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Самое первое, что нужно делать в любом более-менее полезном скрипте или большой программе - это настроить логирование.
    В самом простейшем виде его можно устроить так:
    import sys
    import logging
    if __name__ == '__main__':
        log = logging.getLogger()
        log.level = logging.DEBUG
        log.addHandler(logging.StreamHandler(sys.stderr))
    else:
        log = logging.getLogger(__name__)
    
    ## Используем так:
    log.info('any text')
    log.debug('Something about %r in %s', log, __name__)
    
    ## Здесь размещаем весь остальной код
    if __name__ == '__main__':
        pass  # А здесь, если надо, размещаем то, что будет выполняться, когда модуль запускают как скрипт

    Тут всё логирование заворачивается в sys.stderr, не настроено форматирование, вывод в файл и ротация. Это минимальный уровень, дающий возможность отказаться от print для логирования.
    Пример для питона 2.7.
    Добавлю, что при непосредственном запуске этого кода логгер создаётся с именем по умолчанию (root). Это значит, что в других модулях проекта, управление которым передаётся,
    log = logging.getLogger(__name__)

    создаст логгер с именем модуля, и в главном файле можно будет настроить роутинг логов с учетом этих имён.
    Роутинг настраивается добавлением дополнительных хендлеров и к ним разных фильтров. Если есть какие-то затруднения с этим - пишите, поясню.
    Использовать правильное управляемое, расширяемое и гибкое логирование вместо россыпи принтов очень просто. Нужно просто себя приучить к этому, как к чему-то обязательному вроде чистки зубов, использования системы контроля версий и своевременного бэкапа.
    Ответ написан
    Комментировать
  • На каком ЯП проще всего решить следующую задачу?

    trapwalker
    @trapwalker
    Программист, энтузиаст

    Однозначно Python.
    - Простой лаконичный синтаксис.
    - Читабельность и низкий порог вхождения.
    - Огромное количество готовых библиотек.
    - Кроссплатформенность.
    - Удобный менеджер установки пакетов pip и каталог библиотек PyPI
    Для вашей целей вам понадобится:
    - Встроенная библиотека urllib2 чтобы скачивать нужную страничку.
    - библиотека BeautifulSoup для удобного парсинга страничек и вытягивания из них анных.
    - xlrd для чтения excel-файла.
    - xlwt для записи того, что прочитали с помощью xlrd и новых даных в новый файл или поерх старого.

    Утилиту имеет смысл делать простую консольную. Всего пара десятков строк понятного кода и полная автоматизация.

    Ответ написан
    Комментировать