Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

Забудьте про RGB и HEX

Время на прочтение3 мин
Количество просмотров48K
В CSS существует несколько способов представления цветов. Один из них — система HSL. В этой статье я покажу вам, какие возможности она открывает для верстальщика.
Всего голосов 57: ↑54 и ↓3+72
Комментарии97

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1

Время на прочтение29 мин
Количество просмотров19K
Иногда во время работы над проектом на языке Python возникает желание использовать библиотеку, которая написана не на Python, а, например, на C или C++. Причины для этого могут быть разные Во-первых, Python — язык замечательный, но в некоторых ситуациях недостаточно быстрый. И если вы видите, что производительность ограничена особенностями языка Python, то имеет смысл часть программы написать на другом языке (в этой статье мы будем говорить про C и C++), оформить эту часть программы в виде библиотеки, сделать Python-обвязки (Python bindings) поверх нее и использовать полученный таким образом модуль как обычную Python-библиотеку. Во-вторых, часто случается ситуация, когда вы знаете, что есть библиотека, которая решает требуемую задачу, но, к сожалению, эта библиотека написана не на Python, а на тех же C или C++. В этом случае также мы можем сделать Python-обвязку над библиотекой и пользоваться ей, не задумываясь о том, что библиотека изначально не была написана на Python.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 2

Время на прочтение24 мин
Количество просмотров4.5K
В первой части статьи мы рассмотрели основы работы с утилитой SIP, предназначенной для создания Python-обвязок (Python bindings) для библиотек, написанных на языках C и C++. Мы рассмотрели основные файлы, которые нужно создать для работы с SIP и начали рассматривать директивы и аннотации. До сих пор мы делали обвязку для простой библиотеки, написанной на языке C. В этой части мы разберемся, как делать обвязку для библиотеки на языке C++, которая содержит классы. На примере этой библиотеки мы посмотрим, какие приемы могут быть полезны при работе с объектно-ориентированной библиотекой, а заодно разберемся с новыми для нас директивами и аннотациями.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии2

Изучаем VoIP-движок Mediastreamer2. Часть 1

Время на прочтение6 мин
Количество просмотров3.9K

Материал статьи взят с моего дзен-канала.



Все статьи цикла


Статья 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.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Парсеры Пратта для чайников

Время на прочтение8 мин
Количество просмотров7.9K

Рекурсивный спуск работает идеально, когда вы можете принимать решение относительно разбираемого куска кода с помощью текущего контекста и токена.


Картину портят выражения: постфиксные, инфиксные и прочие. Проблема: вы не можете понять, какого типа выражение вы обрабатываете до тех пор, пока не разберёте его первую половину. Зачастую для вас также важны приоритет операции и её ассоциативность, чтобы построенное AST имело правильную структуру.


В этой статье мы напишем парсер для диалекта Go, особенности которого мы рассмотрим чуть ниже. Как вы сможете убедиться, алгоритм Пратта решает большинство наших проблем.


Читать дальше →
Всего голосов 11: ↑9 и ↓2+14
Комментарии14

Selenium + AutoIT. Автоматизация тестирования Windows окон

Время на прочтение3 мин
Количество просмотров7.9K
Меня зовут Иван Сидоренко, я инженер по тестированию в компании Digital Design.

Передо мной стояла задача разработки авто-тестов для одного из наших проектов с помощью инструмента Selenium WebDriver на языке Java. Подробнее про это вы можете прочитать в моей прошлой статье

Selenium — это инструмент для автоматизации веб-приложений в различных браузерах. В ходе разработки авто-тестов мне попался сценарий, при котором необходимо взаимодействовать с Windows окном для загрузки файлов. К сожалению, Selenium не умеет работать с Windows окнами, поэтому нужно было найти альтернативное решение.


Читать дальше →
Всего голосов 2: ↑1 и ↓1+2
Комментарии7

Реализуем преобразования кода на Python

Время на прочтение10 мин
Количество просмотров23K
Привет, Хабр.

Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+8
Комментарии4

Конспект по методам классификации данных

Время на прочтение7 мин
Количество просмотров14K
При изучении Data Science, я решил составить для себя конспект по основным приемам, используемым в анализе данных. В нем отражены названия методов, кратко описана суть и приведен код на Python для быстрого применения. Готовил конспект для себя, но подумал, что кому-то это также может быть полезно, например, перед собеседованием, в соревновании или при запуске нового проекта. Рассчитано на аудиторию, которая в целом знакома со всеми этими методами, но имеет необходимость освежить их в памяти. Статья под катом.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии1

Конспект по методам прогнозирования

Время на прочтение4 мин
Количество просмотров4.5K

Данный текст является продолжением серии статей, посвященных краткому описанию основных методов анализа данных. В предыдущий раз мы осветили методы классификации, сейчас рассмотрим способы прогнозирования. Под прогнозированием будем понимать поиск конкретного числа, которое ожидается получить для нового наблюдения или для будущих периодов. В статье указаны названия методов, их краткое описание и скрипт на Python. Конспект может быть полезен перед собеседованием, в соревновании или при запуске нового проекта. Предполагается, что аудитория знает эти методы, но имеет необходимость быстро освежить их в памяти.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Julia и квантовые вычисления

Время на прочтение11 мин
Количество просмотров5.7K


Мы представляем Yao (статья), пакет с открытым исходным кодом Julia для решения практических задач в исследованиях квантовых вычислений. Имя Yao происходит от первого китайского иероглифа, означающего унитарность (幺正).

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

Мой способ знакомства учеников младших классов с Python

Время на прочтение5 мин
Количество просмотров17K
В наше время большинство детей знакомится с миром программирования через создание проектов на платформе scratch.mit.edu Создание проектов происходит путем соединения разноцветных блоков без ввода кода с клавиатуры (вводим только значения переменных).

Однако, дети взрослеют, им становится тесно в мире Scratch, и в этот момент им можно предложить несколько путей развития.

Некоторые, как мой сын Артём, вдоволь поработав в графическом редакторе Scratch выбирают кружок изобразительного искусства.

Другие ребята — фанаты 2D игр, продолжают делать более профессиональные игры на платформе Construct.

Ну а фанатам программирования можно посоветовать Python, ведь это один из самых простых языков для изучения. Но как же быть, ведь ученики начальных классов совершенно не знакомы с клавиатурой?
Читать дальше →
Всего голосов 13: ↑12 и ↓1+16
Комментарии4

Сервисы, которые стали бесплатными на время карантина: курсы, радио, книги, кино и сериалы

Время на прочтение5 мин
Количество просмотров386K
image

Кажется, на ближайший месяц почти все мы более или менее на карантине — сидим дома в самоизоляции. Грустно, конечно, но есть и плюсы. Не нужно тратить время на дорогу в офис и обратно, а сэкономленное время можно потратить на обучение, например. Ну или сериал посмотреть, который давно хотелось. Хорошие ребята вроде bang bang и GeekBrains на месяц открывают бесплатный доступ к своим материалам. А мы будем собирать здесь ссылки на такие аттракционы неслыханной щедрости.
Читать дальше →
Всего голосов 40: ↑38 и ↓2+60
Комментарии61

Обучение, переговоры, консультации удалённо — Часть 1: Mind Server и его бесплатная версия

Время на прочтение4 мин
Количество просмотров6.6K
В качестве вступления — приглашаю всех причастных в хаб Видеоконференцсвязь — в ближайшее время, полагаю, здесь будет публиковаться много интересных статей.

В свете последних событий многие компании, причастные к отрасли видеоконференцсвязи, начали бурную рекламную компанию своих продуктов и решений. И выглядит это, порой, не очень красиво: «Только на период пандемии — бесплатно пользуйтесь нашим сервисом...» Всё бы ничего, только такие компании искусственно создают ажиотаж, так как предлагают к эксклюзивному использованию и без того бесплатные версии своих продуктов. Не виню — время такое, лишь бы с пользой для народа.

Как только я услышал о карантине и увидел всевозможные акции бесплатных сервисов, я сразу обратился к своим давним парнёрам — одному из ведущих разработчиков ПО для ВКС в России, компании Майнд. Я решил, что подобная маркетинговая активность им не помешает, но получив отказ был немного обескуражен. Оказалось, что за последние дни нагрузка на облачный сервис Майнд выросла настолько, что вычислительных ресурсов перестало хватать на обработку огромного количества подключений. И это без всякой рекламы, поэтому рекомендовать облачные решения в этой статье я не буду.

В этой статье я напомню о скромном факте — особенности локального решения для видеоконференцсвязи Mind Server, о котором я уже рассказывал в прошлых статьях:
Профессиональная ВКС доступна как никогда. Mind Server — новая версия, новые цены
Видеоконференцсвязь Mind — оптимальный выбор для бизнеса
Речь идёт о бессрочной возможности пользоваться On-Premise версией Mind Server в закрытой сети совершенно бесплатно.
Ставим бесплатный сервер ВКС и не боимся карантина!
Всего голосов 10: ↑10 и ↓0+15
Комментарии13

Структурируем информацию по Android-боксам и разбираем, что должна уметь нормальная приставка

Время на прочтение10 мин
Количество просмотров123K
Всем привет, у меня есть небольшой блог, где я иногда рассматриваю интересную мне технику, в том числе Android-приставки. В этом году я третий раз практически полностью переписал этот раздел, потому что китайские фирмы — а именно они основные производители Android-смарт-боксов — мрут как мухи и производители второго эшелона внезапно становятся лидерами. Просто потому, что предыдущий лидер отправился на покой (да-да, речь о вас, Minix и Zidoo). Текст, как мне кажется, получился достаточно структурированным, и, после некоторой доработки, я перенес его сюда.

Учитывая, сейчас многие уходят на удаленку или карантин, я решил что самое время поговорить про современные Android-приставки. Дело в том, что правильный андроид бокс «уделывает» по функциональности любой смарт ТВ. Это становится особенно актуальным в свете того, что производители научились блокировать функции своих умных телевизоров в зависимости от собственных представлений о правильном и легальном, и не факт что они не станут «закручивать гайки» еще дальше дальше. Слава Богу, качественная смарт ТВ приставка на голову выше любого смарта, ее легко настроить и сменить на более производительную в дальнейшем.



Под катом мы поговорим о том, что должна уметь современная приставка, на что обращать внимание и какую модель выбрать — там крайне простой выбор, ограничивающийся на начало 2020 года всего тремя моделями. Ну и развитие ситуации с короновирсом подсказывает, что сейчас самое время озаботится приставкой, потому что нас могут ждать долгие-предолгие вечера перед телевизором.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+26
Комментарии115

Сила PWA: Система видеонаблюдения с нейросетью в 300 строчек JS-кода

Время на прочтение8 мин
Количество просмотров12K
Привет, Хабр!

Веб-браузеры медленно но верно реализуют большинство функций операционной системы, и остается все меньше причин разрабатывать нативное приложение, если можно написать веб-версию (PWA). Кроссплатформенность, богатое API, высокая скорость разработки на TS/JS, и даже производительность движка V8 — все идет в плюс. Браузеры уже давно умеют работать с видеопотоком и запускать нейронные сети, то есть мы имеем все компоненты для создания системы видеонаблюдения с распознаванием объектов. Вдохновленный этой статьей, я решил довести демо-пример до уровня практического применения, чем и хочу поделиться.

Приложение записывает видео с камеры, периодически отправляя кадры на распознавание в COCO-SSD, и если обнаружен человек — фрагменты видеозаписи порциями по 7 секунд начинают отправляться на указанный емейл через Gmail-API. Как и во взрослых системах — ведется предзапись, то есть мы сохраняем один фрагмент до момента детекции, все фрагменты с детекцией, и один после. Если интернет недоступен, или возникает ошибка при отправке — видеозаписи сохраняются в локальной папке Downloads. Использование емейла позволяет обойтись без серверной части, мгновенно оповестить хозяина, а если злоумышленник завладел устройством и взломал все пароли — он не сможет удалить почту у получателя. Из минусов — перерасход трафика за счет Base64 (хотя для одной камеры вполне хватает), и необходимость собирать итоговый видеофайл из множества емейлов.

Работающее демо здесь.

Проблемы возникли следующие:
Читать дальше →
Всего голосов 9: ↑8 и ↓1+10
Комментарии1

Как мы занялись импортозамещением, а в итоге сделали бесплатную (ну почти) геоинформационную систему

Время на прочтение3 мин
Количество просмотров11K

Введение


В апреле 2015 года вышел приказ Минкомсвязи об утверждении плана импортозамещения ПО и началась работа по созданию реестра российских программ для ЭВМ и баз данных. Отечественному программному обеспечению дали уникальный шанс, который, как казалось еще несколько лет назад, упущен окончательно.

Пока у нас были «добрососедские» отношения с зарубежными «партнерами», никому в голову не приходило выбирать программное обеспечение по принципу «наше» или «не наше».

Выбирали то, что наиболее подходило по функциям, вписывалось в IT-ландшафт, было удобно в использовании или поставщики предлагали хороший «откат» при закупках (шутка =)).

Теперь, с учетом новых правил игры, закупщикам из госсектора и госкомпаниям придется внимательно изучать реестр отечественного ПО и ориентироваться прежде всего на этот список. Конечно, «организовав как следует» закупочные процедуры, можно протащить импортный продукт, который замаскирован под отечественное ПО. Этот сюжет, выходит за рамки данной статьи.

Чем мы решили заниматься

Читать дальше →
Всего голосов 8: ↑5 и ↓3+7
Комментарии15

Как писать безопасный Python-код. Отвечает Кушал Дас

Время на прочтение7 мин
Количество просмотров7.8K
Here is the original English version of this interview.

В этом году компания спикеров Moscow Python Conf++ подобралась что надо (то есть как, подобралась — Программный комитет подобрал). Но кому интересно изучать достижения, куда интереснее, что спикер думает по поводу волнующих нас самих вопросов. Чтобы это узнать, получить инсайдерскую информацию или совет более опытного разработчика, и нужно общаться на конференциях. Но я воспользовался положением и взял небольшое интервью у нашего докладчика Кашала Даса (Kushal Das).

Отличительная черта выступлений Кушала в том, что он регулярно обнародует «секретные» способы сломать Python-код и в противовес показывает, как написать код так, чтобы АНБ не смогло его взломать. На нашей конференции Кушал расскажет, как безопасно разрабатывать и деплоить Python-код, поэтому о безопасности я его и расспрашивал.

Читать дальше →
Всего голосов 8: ↑5 и ↓3+5
Комментарии3

Законы программирования

Время на прочтение20 мин
Количество просмотров58K

Законы, теории, принципы и закономерности, полезные для разработчиков


Введение


Перевод репозитория github.com/dwmkerr/hacker-laws

При обсуждениях, связанных с разработкой ПО, люди часто говорят о различных законах. В данном репозитории хранятся ссылки и описания некоторых из наиболее известных из них.

Здесь содержатся объяснения некоторых законов, принципов и закономерностей, но нет никакой агитации в их пользу. Применять их или нет – это всегда вопрос спорный, и всё зависит от того, над чем вы работаете.

Законы


Закон Амдала


Закон Амдала — это формула, демонстрирующая потенциал ускорения вычислительной задачи, которого можно достичь при увеличении количества ресурсов системы. Обычно он используется в параллельных вычислениях, и может предсказать наличие реальных преимуществ от увеличения количества процессоров с учётом ограничений параллелизуемости программы.
Читать дальше →
Всего голосов 67: ↑65 и ↓2+80
Комментарии21

Основы надежной передачи данных

Время на прочтение7 мин
Количество просмотров22K

КПДВ


Тем, кто стремится разобраться в сетях и протоколах, посвящается.


Кратко

В статье рассматриваются основы надежной передачи данных, реализуются примеры на Go, в том числе UDP и TCP. По мотивам раз, два, три и книги "Компьютерные сети. Нисходящий подход", а то все обсуждают только Танненбаума и Олиферов.

Рассматриваем транспортный протокол, открываем сокет
Всего голосов 9: ↑8 и ↓1+10
Комментарии4

Одновременная посылка команд на несколько устройств с помощью ПО SecureCRT

Время на прочтение5 мин
Количество просмотров8.3K
У сетевых инженеров часто возникает задача выполнить ряд одинаковых действий, на большом количестве оборудования. Основным способом это быстро сделать — является запись действий в блокнот и copy/past на каждое устройство. Существует способ ускорить этот и так быстрый процесс, используя ПО SecureCRT и функционал Command window. Который позволяет посылать команды на несколько устройств одновременно.
Для чего нужна эта статья. Эта статья из цикла Fast Start и направлена на экономию времени сетевым инженерам, при настройке оборудования (одной задачи) на нескольких устройствах. Используется ПО SecureCRT и встроенный функционал Command window.

Читать дальше →
Всего голосов 2: ↑1 и ↓1+2
Комментарии12

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность