Pull to refresh
11
0
Дмитрий Богаткин @drdim

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

Send message

Создание умного дома и разработка своего протокола

Reading time5 min
Views180K
Сразу скажу, что пост ориентирован скорее на обычных людей, чем на тех, кто в теме, и является скорее отчётом того, чем я занимался в последние дни.

Я тут решил забить на всю работу и заняться чем-то для души. Снова взялся за паяльник. Решил автоматизировать дома всё и вся. На старой-то квартире у меня был умный дом или что-то типа того — мог свет в комнате включать через Интернет и всё такое.

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

Было решено, что лучше делать много отдельных устройств, каждое из которых отвечает за строго определённую задачу, имея возможность с лёгкостью подключать их к какой-то общей сети. И чтобы у каждого устройства был адрес и свой набор команд. Что-то вроде CAN-шины в современных автомобилях. При этом хочется, чтобы сеть была децентрализованной, без мастер-устройства, чтобы соединялись все по одному проводу, легко реализовывалось без покупки дополнительного контроллера, ну и чтобы длинные провода не были проблемой.

На борту микроконтроллера есть всякие I²C, да UART, но они явно не удовлетворяют условиям. В итоге было решено разработать свой велосипед протокол.



Читать дальше →

Прекратите скручивать (восклицательный знак)

Reading time6 min
Views1.8M
Ну действительно, прекратите. Есть куча прикольных штук для соединения самых разнообразных проводов, а все равно технология «откусить зубами изоляцию, скрутить, замотать изолентой» жива до сих пор.

Дальше много текста, фотографий, разборок. Ну все как обычно

Адаптивные колонки

Reading time2 min
Views32K
При создании колонок обычно приходится применять специальные CSS-классы к первому и последнему элементу. В этой статье рассказано о небольшом трюке, который упрощает верстку колонок, а также делает их адаптивными.

Суть метода сводится к использованию псевдокласса nth-of-type: количество и ширина колонок меняется на экранах разных размеров (Демонстрация).

Недостатки использования классов для первого и последнего элементов


Применять классы .first и .last для колонок в каждой строке для корректного отображения очень утомительно, к тому же возникают проблемы при верстке адаптивно:

Читать дальше →

Astra: первый контакт

Reading time3 min
Views34K
Изначально для вещания IPTV использовалась связка sasc-ng (дешифрование закрытых каналов) и getstream (ремультиплексирование и вещание в есть) на серверах и несколько спутниковых ресиверов. Примерно два года назад начал доработку getstream, основная цель — заменить дорогостоящие ресиверы и убрать нестабильный sasc-ng. Со временем этот проект стал известен как getstream_a84 (a84 — было названием моего аккаунта на bitbucket.org, от туда и приклеилось).
Приложение получилось вполне работоспособным, в отличии от sasc-ng не требовалось установки dvbloopback, стабильно работал с системами условного доступа DRE-Crypt и Irdeto.
Примерно год назад появилась необходимость разработать замену для getstream. Основная причина — архитектура getstream не позволяла с лёгкостью добавлять новый функционал. Даже доработка существующего кода доставляла много проблем. Новый проект получил название Astra.
Читать дальше →

Головная станция IPTV

Reading time4 min
Views93K
Доброго времени суток!

Хочу вам рассказать о устройстве головной станции IPTV на примере нашего провайдера.
Надеюсь, что после прочтения статьи у вас появится хорошее представление о работе головной станции IPTV.



Итак, что мы имеем:

  • 7 спутниковых антенн на 11 спутников
  • Мультисвитчи в нужном количестве
  • ~80 спутниковых приемников
  • Видеошлюзы (стриммеры)
  • Серверы Middleware
  • Видео сервера (VOD, NPVR)
  • Сервера потокового шифрования
  • Систему мониторинга




Читать дальше →

Графический фреймворк. Набор иконок социальных сервисов

Reading time1 min
Views61K


Привет уважаемое хабрасообщество, этот пост служит продолжением еще недавно активно обсуждаемой темы о социальных иконках [1] [2]. Мысль, которая пришла ко мне в голову после прочтения этих статей, привела к появлению нового вектора развития этой темы. Кстати о векторе, например бывает так, что дизайн разрабатываемого сайта или приложения имеет свою специфику и интегрировать стандартные иконки социальных сервисов без адаптации не представляется возможным. В таком случае мы берем в руки гугл и принимаемся за поиск нужных логотипов, для того чтобы создать подходящий набор иконок. Ах да я немного отвлекся, продолжим о векторе, чтобы не проделывать такие скучные действия, я собрал воедино несколько популярных иконок в векторе и теперь каждый желающий может сэкономить немного времени воспользовавшись им.
Читать дальше →

Уязвимости серверов к медленному чтению

Reading time2 min
Views28K
Приветствую.
Хочу рассказать, чем я баловался в свободное от работы в Qualys время. Так как в англоязычном интернете на удивление много шума про Slow Read DoS attack, и уверен что получу здесь много полезной критики и дельных предложений.

В августе 2011 года написал програмку slowhttptest, которая тестирует веб-серверы на наличие уязвимостей, связанных с обработкой медленных HTTP запросов, таких как slowloris и slow HTTP Post. Цель — создать конфигурируемый инструмент, облегчающий работу разработчиков и позволить им концентрироваться на создании эффективных защит, а не ковырянии в питоне, на котором написаны большинство proof-of-concept эксплоитов.

А потом решил попробовать, как реагируют серверы на медленное чтение клиентами HTTP респонсов. На удивление плохо реагируют. Дефолтные apache, nginx, lightpd, IIS отказывают в обслуживании на ура.

А суть такова:
Читать дальше →

Синтез и распознавание речи от Google для Asterisk

Reading time5 min
Views85K
Доброе утро!

Вчера вечером заглянул на Хабр, увидел статью Google translate+Asterisk IVR и у меня волосы зашевелились в подмышках.

Синтез речи, как это просто!
Не нужно собирать Festival и искать для него семплы. Все уже готово, просто и от Google.

Читать дальше →

Читаем QR код

Reading time5 min
Views1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →

Нечёткий поиск на клиенте и Soundex

Reading time7 min
Views9K
Soundex — один из алгоритмов сравнения двух строк по их звучанию. Был разработан чуть менее 100 лет назад Робертом Расселом и Маргарет Оделл. Активно используется в США при диктовке фамилий.

Я давно интересовался применением этого алгоритма и нашёл ему место для фильтрации данных на клиенте, а точнее, для поиска отеля по названию в проекте Островок.ru.

Задача

На Островке все найденные отели передаются на клиент и вся фильтрация и сортировка выдачи происходит в браузере. Необходимо было добавить фильтр по названию отеля.

Решение, проблемы и готовый скрипт

Information

Rating
9,097-th
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity