Пользователь
Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1
Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 2
Изучаем VoIP-движок Mediastreamer2. Часть 1
Материал статьи взят с моего дзен-канала.
Все статьи цикла
Статья 1
Статья 2
Статья 3
Статья 4
Статья 5
Статья 6
Статья 7
Статья 8
Статья 9
Статья 10
Статья 11
Статья 12
Статья 13
Книгу на основе статей можно свободно скачать по ссылке: pdf-файл.
Введение
Эта статья является началом цикла статей о реалтайм обработке медиаданных с помощью движка Mediastreamer2.
В ходе изложения будут задействованы минимальные навыки работы в терминале Linux и программирования на языке Си.
Mediastreamer2 это VoIP-движок, лежащий в основе популярного open-source проекта программного voip-телефона Linphone. В Linphone Mediastreamer2 реализует все функции связанные со звуком и видео. Подробный список возможностей движка можно увидеть на этой странице Mediastreamer. Исходный код находится здесь: GitLab.
Парсеры Пратта для чайников
Рекурсивный спуск работает идеально, когда вы можете принимать решение относительно разбираемого куска кода с помощью текущего контекста и токена.
Картину портят выражения: постфиксные, инфиксные и прочие. Проблема: вы не можете понять, какого типа выражение вы обрабатываете до тех пор, пока не разберёте его первую половину. Зачастую для вас также важны приоритет операции и её ассоциативность, чтобы построенное AST имело правильную структуру.
В этой статье мы напишем парсер для диалекта Go, особенности которого мы рассмотрим чуть ниже. Как вы сможете убедиться, алгоритм Пратта решает большинство наших проблем.
Selenium + AutoIT. Автоматизация тестирования Windows окон
Передо мной стояла задача разработки авто-тестов для одного из наших проектов с помощью инструмента Selenium WebDriver на языке Java. Подробнее про это вы можете прочитать в моей прошлой статье
Selenium — это инструмент для автоматизации веб-приложений в различных браузерах. В ходе разработки авто-тестов мне попался сценарий, при котором необходимо взаимодействовать с Windows окном для загрузки файлов. К сожалению, Selenium не умеет работать с Windows окнами, поэтому нужно было найти альтернативное решение.
![](https://habrastorage.org/webt/cd/zl/d4/cdzld4whe4et6m2j_xhh47dl-6g.png)
Реализуем преобразования кода на Python
Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.
Конспект по методам классификации данных
Конспект по методам прогнозирования
Данный текст является продолжением серии статей, посвященных краткому описанию основных методов анализа данных. В предыдущий раз мы осветили методы классификации, сейчас рассмотрим способы прогнозирования. Под прогнозированием будем понимать поиск конкретного числа, которое ожидается получить для нового наблюдения или для будущих периодов. В статье указаны названия методов, их краткое описание и скрипт на Python. Конспект может быть полезен перед собеседованием, в соревновании или при запуске нового проекта. Предполагается, что аудитория знает эти методы, но имеет необходимость быстро освежить их в памяти.
Мой способ знакомства учеников младших классов с Python
Однако, дети взрослеют, им становится тесно в мире Scratch, и в этот момент им можно предложить несколько путей развития.
Некоторые, как мой сын Артём, вдоволь поработав в графическом редакторе Scratch выбирают кружок изобразительного искусства.
Другие ребята — фанаты 2D игр, продолжают делать более профессиональные игры на платформе Construct.
Ну а фанатам программирования можно посоветовать Python, ведь это один из самых простых языков для изучения. Но как же быть, ведь ученики начальных классов совершенно не знакомы с клавиатурой?
Сервисы, которые стали бесплатными на время карантина: курсы, радио, книги, кино и сериалы
![image](https://habrastorage.org/webt/le/p3/vh/lep3vh-jrqdkctnprkzdwee9xw4.png)
Кажется, на ближайший месяц почти все мы более или менее на карантине — сидим дома в самоизоляции. Грустно, конечно, но есть и плюсы. Не нужно тратить время на дорогу в офис и обратно, а сэкономленное время можно потратить на обучение, например. Ну или сериал посмотреть, который давно хотелось. Хорошие ребята вроде bang bang и GeekBrains на месяц открывают бесплатный доступ к своим материалам. А мы будем собирать здесь ссылки на такие аттракционы неслыханной щедрости.
Обучение, переговоры, консультации удалённо — Часть 1: Mind Server и его бесплатная версия
![](https://habrastorage.org/webt/f_/j4/iy/f_j4iyzer4ct2bvbdyqunqlja8e.png)
В свете последних событий многие компании, причастные к отрасли видеоконференцсвязи, начали бурную рекламную компанию своих продуктов и решений. И выглядит это, порой, не очень красиво: «Только на период пандемии — бесплатно пользуйтесь нашим сервисом...» Всё бы ничего, только такие компании искусственно создают ажиотаж, так как предлагают к эксклюзивному использованию и без того бесплатные версии своих продуктов. Не виню — время такое, лишь бы с пользой для народа.
Как только я услышал о карантине и увидел всевозможные акции бесплатных сервисов, я сразу обратился к своим давним парнёрам — одному из ведущих разработчиков ПО для ВКС в России, компании Майнд. Я решил, что подобная маркетинговая активность им не помешает, но получив отказ был немного обескуражен. Оказалось, что за последние дни нагрузка на облачный сервис Майнд выросла настолько, что вычислительных ресурсов перестало хватать на обработку огромного количества подключений. И это без всякой рекламы, поэтому рекомендовать облачные решения в этой статье я не буду.
В этой статье я напомню о скромном факте — особенности локального решения для видеоконференцсвязи Mind Server, о котором я уже рассказывал в прошлых статьях:
Профессиональная ВКС доступна как никогда. Mind Server — новая версия, новые цены
Видеоконференцсвязь Mind — оптимальный выбор для бизнеса
Речь идёт о бессрочной возможности пользоваться On-Premise версией Mind Server в закрытой сети совершенно бесплатно.
Структурируем информацию по Android-боксам и разбираем, что должна уметь нормальная приставка
Учитывая, сейчас многие уходят на удаленку или карантин, я решил что самое время поговорить про современные Android-приставки. Дело в том, что правильный андроид бокс «уделывает» по функциональности любой смарт ТВ. Это становится особенно актуальным в свете того, что производители научились блокировать функции своих умных телевизоров в зависимости от собственных представлений о правильном и легальном, и не факт что они не станут «закручивать гайки» еще дальше дальше. Слава Богу, качественная смарт ТВ приставка на голову выше любого смарта, ее легко настроить и сменить на более производительную в дальнейшем.
![](https://habrastorage.org/webt/3p/-v/um/3p-vump4gwiwxudr81l89bjzlhc.jpeg)
Под катом мы поговорим о том, что должна уметь современная приставка, на что обращать внимание и какую модель выбрать — там крайне простой выбор, ограничивающийся на начало 2020 года всего тремя моделями. Ну и развитие ситуации с короновирсом подсказывает, что сейчас самое время озаботится приставкой, потому что нас могут ждать долгие-предолгие вечера перед телевизором.
Сила PWA: Система видеонаблюдения с нейросетью в 300 строчек JS-кода
Веб-браузеры медленно но верно реализуют большинство функций операционной системы, и остается все меньше причин разрабатывать нативное приложение, если можно написать веб-версию (PWA). Кроссплатформенность, богатое API, высокая скорость разработки на TS/JS, и даже производительность движка V8 — все идет в плюс. Браузеры уже давно умеют работать с видеопотоком и запускать нейронные сети, то есть мы имеем все компоненты для создания системы видеонаблюдения с распознаванием объектов. Вдохновленный этой статьей, я решил довести демо-пример до уровня практического применения, чем и хочу поделиться.
Приложение записывает видео с камеры, периодически отправляя кадры на распознавание в COCO-SSD, и если обнаружен человек — фрагменты видеозаписи порциями по 7 секунд начинают отправляться на указанный емейл через Gmail-API. Как и во взрослых системах — ведется предзапись, то есть мы сохраняем один фрагмент до момента детекции, все фрагменты с детекцией, и один после. Если интернет недоступен, или возникает ошибка при отправке — видеозаписи сохраняются в локальной папке Downloads. Использование емейла позволяет обойтись без серверной части, мгновенно оповестить хозяина, а если злоумышленник завладел устройством и взломал все пароли — он не сможет удалить почту у получателя. Из минусов — перерасход трафика за счет Base64 (хотя для одной камеры вполне хватает), и необходимость собирать итоговый видеофайл из множества емейлов.
Работающее демо здесь.
Проблемы возникли следующие:
Как мы занялись импортозамещением, а в итоге сделали бесплатную (ну почти) геоинформационную систему
Введение
В апреле 2015 года вышел приказ Минкомсвязи об утверждении плана импортозамещения ПО и началась работа по созданию реестра российских программ для ЭВМ и баз данных. Отечественному программному обеспечению дали уникальный шанс, который, как казалось еще несколько лет назад, упущен окончательно.
Пока у нас были «добрососедские» отношения с зарубежными «партнерами», никому в голову не приходило выбирать программное обеспечение по принципу «наше» или «не наше».
Выбирали то, что наиболее подходило по функциям, вписывалось в IT-ландшафт, было удобно в использовании или поставщики предлагали хороший «откат» при закупках (шутка =)).
Теперь, с учетом новых правил игры, закупщикам из госсектора и госкомпаниям придется внимательно изучать реестр отечественного ПО и ориентироваться прежде всего на этот список. Конечно, «организовав как следует» закупочные процедуры, можно протащить импортный продукт, который замаскирован под отечественное ПО. Этот сюжет, выходит за рамки данной статьи.
Чем мы решили заниматься
Как писать безопасный Python-код. Отвечает Кушал Дас
В этом году компания спикеров Moscow Python Conf++ подобралась что надо (то есть как, подобралась — Программный комитет подобрал). Но кому интересно изучать достижения, куда интереснее, что спикер думает по поводу волнующих нас самих вопросов. Чтобы это узнать, получить инсайдерскую информацию или совет более опытного разработчика, и нужно общаться на конференциях. Но я воспользовался положением и взял небольшое интервью у нашего докладчика Кашала Даса (Kushal Das).
Отличительная черта выступлений Кушала в том, что он регулярно обнародует «секретные» способы сломать Python-код и в противовес показывает, как написать код так, чтобы АНБ не смогло его взломать. На нашей конференции Кушал расскажет, как безопасно разрабатывать и деплоить Python-код, поэтому о безопасности я его и расспрашивал.
![](https://habrastorage.org/webt/xy/l2/fw/xyl2fwzzdez4flpgcwsx-mvrhpu.jpeg)
Законы программирования
Законы, теории, принципы и закономерности, полезные для разработчиков
Введение
Перевод репозитория github.com/dwmkerr/hacker-laws
При обсуждениях, связанных с разработкой ПО, люди часто говорят о различных законах. В данном репозитории хранятся ссылки и описания некоторых из наиболее известных из них.
Здесь содержатся объяснения некоторых законов, принципов и закономерностей, но нет никакой агитации в их пользу. Применять их или нет – это всегда вопрос спорный, и всё зависит от того, над чем вы работаете.
Законы
Закон Амдала
Закон Амдала — это формула, демонстрирующая потенциал ускорения вычислительной задачи, которого можно достичь при увеличении количества ресурсов системы. Обычно он используется в параллельных вычислениях, и может предсказать наличие реальных преимуществ от увеличения количества процессоров с учётом ограничений параллелизуемости программы.
Основы надежной передачи данных
Одновременная посылка команд на несколько устройств с помощью ПО SecureCRT
Для чего нужна эта статья. Эта статья из цикла Fast Start и направлена на экономию времени сетевым инженерам, при настройке оборудования (одной задачи) на нескольких устройствах. Используется ПО SecureCRT и встроенный функционал Command window.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность