Pull to refresh
-1
0
Сёмка @cema93

full stack developer

Send message

Адаптируем nooLite для работы с Apple HomeKit

Reading time11 min
Views20K

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


Работу с объектом можно условно разделить на 3 этапа:


  1. Общение с заказчиком, получение информации об ожидаемых функциях системы и их приоритетах
  2. Установка и настройка
  3. Общение с заказчиком, получении отзыва о системе, недостающих функциях, функциях, оставшихся невостребованными.

Как показывает практика, на первом этапе абсолютно все клиенты считают, что управление светом с телефона — основная функция системы, которой они будут пользоваться постоянно, особенно в туалете. Но через некоторое время после использования выясняется, что этой опцией пользуется меньшинство. Так как, в основном, пользователи системы — владельцы iPhone, для управления домом необходимо разблокировать телефон, открыть приложение, выбрать нужную комнату и только потом включить свет. Оказывается, человеку намного проще дотянуться до ближайшего выключателя.



Я понимал, что этот процесс можно как-то упростить, однако всерьез этим не занимался. Но недавно на рынок вышли два интересных обновления, которые подтолкнули нас с @RagimovRV попробовать добавить моему и клиентским "Удобным домам" немного сообразительности.


Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments36

Блокировщик рекламы для дома на коленке

Reading time3 min
Views28K

Предыстория


Прожорливый Bind9


Пришлось мне пару лет назад покинуть свой родной дом и переехать в другой город. В результате свой самосборный медиа-центр пришлось оставить, а на новом месте купить телеприставку AuraHD Plus. Весьма не плохой девайс за свои деньги, особенно если учесть, что в нем встроены приложения для доступа к сервисам с фильмами и т.п.


Все бы ничего, но реклама там крутится на каждый чих. Пришлось изобретать, как же ее "порезать". Первая мысль была — поднять свой DNS сервер и отправлять все неугодные домены в /dev/null на 127.0.0.1. К этому моменту мой домашний серверок вернулся ко мне и занял свое почетное место на шкафу в качестве NAS сервера.


Сказано — сделано. Поднят Bind9, прописаны конфиги для нескольких доменов, все отлично. Летим.

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments34

Настройка окружения для PHP разработчиков

Reading time9 min
Views45K
В данной статье мы рассмотрим настройку окружения для PHP разработчиков с использованием Vagrant, Docker, Xdebug, PHPUnit, и интеграцию с IDE PHPStorm.

+

Требования


  • Окружение должно развертываться на Windows, MacOS, Linux
  • Установка должна быть максимально простой
  • Быстрая работа с файловой системой
  • Интеграция с IDE PHPStorm
  • Несколько версии PHP интерпретаторов (5.6, 7.0)

Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments62

Слайд-шоу без JS

Reading time3 min
Views20K
Вам приходилось когда-нибудь делать на сайте слайд-шоу? Думаю да, именно поэтому я решил написать эту статью. Иногда мне приходится делать это на сайтах, но я пока не знаю js и обычно ищу, скачиваю исходники и пытаюсь их настроить.
Читать дальше →
Total votes 48: ↑19 and ↓29-10
Comments35

Домашний хостинг сайтов с динамическим IP

Reading time6 min
Views150K
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).

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

В то-же время в наличии имеется:

  • Домашний сервер на Ubuntu
  • Быстрый ethernet-интернет от МТС

Но не имеется ключевого — статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).

Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Читать дальше →
Total votes 57: ↑44 and ↓13+31
Comments93

Выключатель Gira + Z-Wave. 4-кнопочный радио выключатель на базе Z-Uno

Reading time5 min
Views14K


Какие задачи решает радио выключатель:

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

На данный момент существуют Z-Wave выключатели на батарейках, например Z-Wave.Me Wall Controller, но эти выключатели идут с определенным дизайном клавиш. Если вы хотите использовать выключатели Legrand, Gira и др., то тут на помощь приходит Z-Wave плата Z-Uno.

Я покажу как из обычно выключателя Gira сделать радио выключатель на батарейках, который можно установить в любое удобное место. Видео работы выключателя в конце статьи.
Total votes 12: ↑12 and ↓0+12
Comments24

«Привет, Siri. Включи обогреватели» — Интеграция умного дома на базе NooLite с Apple HomeKit

Reading time12 min
Views43K
image

В своей первой статье я описал предысторию появления системы удаленного управления отоплением в загородном доме через Telegram-бота, которым я и моя семья пользовались долгое время.


С выходом iOS 10, Apple представила пользователям приложение Дом — свою реализацию интерфейса управления умным домом через HomeKit. Меня весьма заинтересовала данная тема и, потратив несколько вечеров на изучение доступного материала, я решил реализовать интеграцию данного продукта с моей системой. В статье я подробно изложу процесс ее установки и настройки, а также поделюсь видео с результатами того, что получилось в итоге.

Total votes 33: ↑33 and ↓0+33
Comments19

Как найти поддомены за считанные минуты?

Reading time4 min
Views166K
Поиск поддоменов — неотъемлемая часть подготовки ко взлому, а благодаря некоторым инструментам противостояние этим действиям стало намного проще.

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

В случае последнего из череды инцидентов весь код сайта Vine можно было загрузить с незащищенного поддомена.

Если вы владелец сайта или изучаете вопросы информационной безопасности, вы можете воспользоваться следующими инструментами чтобы найти поддомены любого домена.

image
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments10

Мониторим клиентские ПК в Microsoft AD с помощью Zabbix. Часть 2 — Шаблон, скрипты и LLD

Reading time14 min
Views18K
Zabbix обладает достаточно большими возможностями из коробки, но этого иногда может не хватать, и на этот случай есть возможность использовать сторонний скрипт для обработки событий(Report problems to script). К самому скрипту вернемся чуть позже, пока опишу только основную мысль, чтобы было понятно, что и зачем мы добавляем в description триггеров. Скрипт парсит тело письма и ищет строчку MYparsBLOCK:funcname: если находит, то выполняет funcname(), если не находит, — то просто отправляет оповещение. Разумнее всего добавлять это в описание триггеров, поэтому в Actions-Event source –Triggers-operations необходимо добавить в default message — {TRIGGER.DESCRIPTION}.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments4

MMO в реальном мире, или Инструкция по созданию живых игр, или Как сделать так, чтобы детям в лагере было интересно

Reading time9 min
Views14K

Никогда мне не быть Milfgard'ом
Мои строки не так понятны
Но я тоже делаю игры
И это довольно приятно

К.В.Давыденко 2016 г.


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



Как некоторые из хаброжителей знают, по предыдущей статье я в свободное время работаю в детских лагерях. Я занимаюсь в них много чем, но специализируюсь я (если это можно так сказать) на создании игр в реальном мире. Это не такая уж и простая задача. Перед создателем игры встаёт много трудностей. В этой статье я хочу рассказать о них на примере большой игры-симуляторе города, под названием Big City Jail Detective RPGame. Но прежде чем переходить к чему-то настолько глобальному, рассмотрим ситуацию выше.


Что же делать, если вы человек-леденец запертый с детьми?


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

Читать дальше →
Total votes 50: ↑50 and ↓0+50
Comments91

Массовый взлом FirstVDS

Reading time20 min
Views22K
Минимум 3000 сайтов на 1000 серверов скомпрометировано на уровне супер-пользователя.

Несколько дней назад мы обнаружили, что файлы наших сайтов были не санкционировано изменены. Оказалось — взлом. Вроде бы ничего интересного, но в результате небольшого расследования нам удалось обнаружить сотни взломанных серверов в сети FirstVDS.

Основной целью злоумышленника является реклама казино «Вулкан». Из инфицированных сайтов он создает перелинкованные друг с другом ссылочные сети с рекламными веб-страницами, тем самым влияя на алгоритмы поисковых систем. Эти страницы завлекают ботов по запросам вроде «лучшее казино в интернете», и при переходе пользователя на такую страницу, его переносят в казино. Работа оригинального сайта, как правило, полностью не нарушается, и поэтому проблемы остаются незамеченными администраторами большинства серверов.

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

Обнаруженные серверы являются полностью скомпрометированными. Нет никаких гарантий, что файлы и данные не украдены, или не внедрена лазейка для удержания контроля над сервером в будущем, после лечения сайтов.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments29

Просмотр запросов к веб серверу apache в реальном времени

Reading time4 min
Views21K
Нагрузка на сервер является важным звеном администрирования веб сервера, отслеживание запросов помогает быстро искать ошибочные запросы и устранять их раньше чем они вернуться к вам со статистикой вебмастера. По умолчанию в конфигурационном файле веб сервера апаче закоментрировано определение хоста в dns что в свою очередь еще больше усложняет понимание того, что приходит на сайте. Упростить все это удалось написанием скрипта отображающего все запросы к веб серверу в режиме реального времени. Сохраняя несколько сотен запросов удалось посчитать время загрузки. Это процент от реально прошедшего времени суммы времени потраченных на вывод ресурсов. Удобный вывод времени затраченного на выполнение каждой страницы сайта стал незаменим в поиске слабых мест. Небольшой массив со списком шаблонов поисковых систем позволил выделить их отдельным цветом в ленте запросов.
Total votes 20: ↑12 and ↓8+4
Comments27

NGINX: Перехват ошибок 5хх с помощью отладочного сервера

Reading time6 min
Views25K

Является ли ошибкой ответ 5хх, если его никто не видит? [1]


image

Вне зависимости от того, как долго и тщательно программное обеспечение проверяется перед запуском, часть проблем проявляется только в рабочем окружении. Например, race condition от параллельного обслуживания большого количества клиентов или исключения при валидации непредвиденных данных от пользователя. В результате эти проблемы могут привести к 5хх ошибкам.

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

Для облегчения процесса поиска и отладки могут быть использованы некоторые полезные приёмы в случае, когда NGINX используется для проксирования или балансировки приложения. В этой статье будет рассмотрено особое использование директивы error_page в применении к типичной инфраструктуре приложения с проксированием через NGINX.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments4

Как школа Skyeng создала собственную CRM из подручных средств

Reading time6 min
Views15K


Разработка собственной системы управления взаимоотношениями с клиентами не была нашей изначальной целью. Все силы мы бросили на разработку собственной образовательной платформы, но когда начали появляться первые клиенты – ученики школы – ведение собственной CRM стало насущной потребностью. Мы начали с готовых и общедоступных инструментов типа Google Docs, постепенно добавляя собственные наработки, пока не обнаружили, что имеем полноценный кастомизированный инструмент, решающий именно наши задачи. Как у нас получилось разработать собственную CRM – читайте в нашем рассказе.
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments3

Что мы знаем о 5G-сетях

Reading time5 min
Views30K

Эксперты прогнозировали массовое внедрение мобильной связи пятого поколения не раньше 2020 года, но работы идут с опережением. Стандарты 5G могут быть утверждены уже в течение ближайшего года, а тестовый запуск сети для обычных пользователей состоится в 2018 году.

Об ожиданиях по поводу сетей пятого поколения – оправданных и не очень – расскажем под катом.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments21

Программное обеспечение для умного дома

Reading time6 min
Views58K
Всем добрый день. В качестве хобби написал программу, которую можно использовать как часть системы “умный дом”. Чтобы сразу заинтересовать читателя, продемонстрирую некоторую малую часть сценариев использования ПО:

image
Просмотр
Total votes 20: ↑17 and ↓3+14
Comments29

Первый мобильный браузер с поддержкой расширений для Chromium. Новая альфа Яндекс.Браузера

Reading time4 min
Views71K
Современные мобильные браузеры, как и их десктопные аналоги, должны позволять пользователям добавлять недостающие возможности с помощью дополнений. Несмотря на отказ команды Chromium от идеи поддержки расширений на Android, наша команда продолжает работать над этой возможностью, и сегодня мы приглашаем сообщество Хабра попробовать первую альфу Яндекс.Браузера, в которую вы уже сможете установить LastPass, Tampermonkey или даже Ghostery.

image

Первые дополнения появились в Internet Explorer еще в 1999 году и за следующее десятилетие практика открытия доступа к API стала обязательной для любого более-менее популярного браузера. Сейчас многие из нас не представляют себе работу за компьютером без возможности добавить в браузер необходимую функцию собственными руками. А вот с Android пока еще все не так. Несмотря на рост производительности современных мобильных устройств, браузерные расширения на Android – скорее исключение, чем правило.

Читать дальше →
Total votes 118: ↑111 and ↓7+104
Comments77

Группировка моделей телефонов Android по контейнерам Docker

Reading time7 min
Views15K

Немного предыстории


Мобильное приложение Badoo существует для основных «нативных» платформ (Android, iOS и Windows Phone) и для мобильного веба. Несмотря на то, что в разработке мы не используем никаких кроссплатформенных фрэймворков, подавляющая часть бизнес-логики в приложениях схожа, и чтобы не дублировать функциональные тесты для всех платформ, мы пишем кроссплатформенные тесты с помощью Cucumber, Calabash и Appium. Это позволяет нам выносить в общую часть и переиспользовать в тестах для всех платформ код, отвечающий за проверку этой самой бизнес-логики. Различной же остается лишь реализация взаимодействия с приложением (более подробно мы рассказывали об этом здесь).

Когда кроссплатформенная автоматизация только начиналась (на iOS и Android), было принято решение использовать в качестве серверов Mac Mini. Это позволило сделать каждую из 8 билд-машин универсальной: на ней можно было собирать и запускать функциональные и юнит-тесты как для приложений на iOS, так и на Android. Такое решение устраивало нас практически всем до тех пор, пока количество функциональных тестов не перевалило за пять сотен для каждой платформы, а прогоны не стали требовать все больше времени. Для того чтобы удержать время прогона в разумных границах, мы постоянно работаем над оптимизацией тестов, а также добавляем новые Android-устройства (для iOS мы добавляем симуляторы по-другому). Со временем у нас появились Mac Mini с более чем 8 смартфонами. Важно отметить, что мы подключаем устройства одной модели к одному серверу, чтобы прогоны тестов были консистентны на одном агенте.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments2

Еще раз о пользе резервных копий или история о моей неудаче

Reading time7 min
Views36K
Всегда приятно вспомнить как удалось решить какую-нибудь нетривиальную задачу. Но бывает и наоборот. Задача была вроде понятна, но вот решить её не удалось. Ниже я расскажу грустную историю из моей практики. Грустная она потому, что я, до сих пор, не знаю, как решить ту проблему. История, в очередной раз, напомнит как важно уделять должное внимание резервному копированию и тщательному обдумыванию своих действий. Ну а если кто-то из читателей расскажет мне, что можно было сделать, чтобы добиться лучшего результата, то это будет просто замечательно.

image

Итак, жил-был системный администратор и был у него Active Directory домен. Так как инфраструктура была небольшой и досталась ему в наследство давно, то был в ней всего один контроллер домена с установленной на нём Windows Server 2003. Ресурсов сильно не хватало, поэтому на этом же сервере было установлено довольно большое количество приложений, которыми пользовался сам администратор и некоторые его коллеги. Ну и вишенкой на торте — резервных копий в этой компании никогда не делалось. Что могло пойти не так? Подробности под катом.
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments71

Как включить компьютер с паролем? Обход пароля на Windows

Reading time3 min
Views33K

Предыстория


У моей подруги на компьютере стоит пароль на ученой записи Microsoft (Windows 10). Обшарив весь интернет, я ничего полезнее не нашел, как подмена экранной клавиатуры на командную строку и сброс пароля с помощью «net user login password». А сбрасывать пароль — это не вариант. Была идея с помощью безопасного режима или в режиме восстановления Windows открыть командную строку и создать нового пользователя, но и там и там требовался тот же пароль. Мне стало интересно своими руками найти лазейку и обойти эту защиту. Вряд ли кому интересно, как я пришел к этому способу, поэтому просто опишу план действий.
Читать дальше →
Total votes 43: ↑14 and ↓29-15
Comments38

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity