Pull to refresh
26
0
Михаил @Mixalych

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

Send message

Обзор микроволнового датчика присутствия Hi-Link LD2410

Level of difficultyMedium
Reading time3 min
Views17K

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

Мой выбор пал на DIY микроволновый датчик Hi-Link LD2410, расскажу почему.

Читать далее
Total votes 38: ↑38 and ↓0+38
Comments76

Дружимся с ESP

Reading time10 min
Views157K

Здравствуйте, коллеги и энтузиасты!

Последние пару лет практически все прототипирование несложных IoT-устройств я делаю на NodeMCU, хотя зачастую она и великовата по размеру, и дороговата, и избыточна по функционалу. А все потому, что имела неудачный опыт с ESP-01, которая совершенно не поддавалась прошивке. Сейчас пришло время преодолеть этот барьер и освоить другие железки, от которых мне нужно следующее - Wi-Fi и пины для подключения периферии.

В этой статье разберем подключение к платформе Интернета вещей наиболее популярных плат с интерфейсом Wi-Fi. Их можно использовать, чтобы управлять своим устройством дистанционно или чтобы снимать показания с сенсоров через интернет.

Хочу узнать больше >>>
Total votes 17: ↑15 and ↓2+13
Comments33

Резервное копирование репозиториев с github, gitlab

Reading time1 min
Views8.7K
main

Резервное копирование репозиториев с git серверов на основе github и gitlab по токену. Скрипт скачивает все Ваши репозитории доступные по токену и архивирует их. Давно хотел написать такой инструмент т.к. использую и те и те сервера в работе и личных целях. У меня полно старых проектов которые хранятся только на git, если с ним что-то случится, то их уже не будет.

Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments17

Честные модули внутри PHP: теперь они существуют

Reading time15 min
Views8.6K

Низкий порог входа и строгость языка программирования — вещи обычно несовместимые. Потому что ты либо, как Rust, бьёшь по рукам borrow checker’ом — либо, как PHP, позволяешь не задумываться о типах и быстро прототипировать. 

На самом деле, если писать код грамотно, это становится неважным и язык перестаёт иметь значение. Архитектура важнее языка, и хороший код на PHP ничем не отличается от аналогичного кода на любом другом ООП-языке. Другое дело, что возможность «любой домохозяйке» писать на PHP сопровождается и риском наворотить полное неподдерживаемое безобразие. Поэтому нам нужны тайпхинты, линтеры, статические анализаторы и подобные инструменты. 

Но в PHP есть и ещё один изъян: в нём любой класс, функция или константа — глобальны. Можно создать класс из любого места в коде, и нет способа скрыть его или сделать деталью реализации где-то в отдельной папке. Иными словами, в PHP нет того, что в других языках называется модулями.

Наша новая open-source разработка называется Modulite и внедряет в PHP модули. Это сквозная технология: мы внедряемся в IDE, в PHPStan, в KPHP, в CI, в Composer — и делаем так, будто бы модули нативно есть в языке PHP.

Читать далее
Total votes 61: ↑58 and ↓3+55
Comments10

Gitea + Drone + Nginx + Portainer. Пошаговое руководство по деплою аналога github на своём железе

Reading time8 min
Views15K

В данном туториале я расскажу вам как можно задеплоить gitea на своём железе с использованием docker-compose подключить drone, для возможности автоматизации тестирования и доставки собственных приложений, настроить reverse-proxy через nginx для доступа через сеть и включить portainer для мониторинга запущенных контейнеров.

Читать далее
Total votes 11: ↑9 and ↓2+7
Comments18

Насколько круто иметь свой сервер в комнате

Reading time6 min
Views111K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Total votes 148: ↑147 and ↓1+146
Comments313

5 супер полезных сетевых утилит linux

Reading time3 min
Views30K

Привет! Начинающие devops инженеры часто задают вопрос: что мне поучить, чтобы стать лучше (привет diablo)? Обычно я отвечаю: поучи команды linux. Но в целом посыл обычно ясен, чтобы что-то учить, надо хотя бы знать название утилит. Цель этой статьи и является ознакомление любопытного читателя с интересными сетевыми утилитами которые есть (или легко устанавливаются) в любом дистрибутиве linux. И так начнем! 

Читать далее
Total votes 39: ↑27 and ↓12+15
Comments26

Точечная маршрутизация на роутере с OpenWrt. WireGuard и DNSCrypt

Level of difficultyMedium
Reading time13 min
Views125K
Данный материал не является призывом к действию и публикуется исключительно в образовательных целях.

UPD 14.10.2023
Эта статья немного устарела. Здесь можно узнать, как использовать готовые списки IP-адресов, что не совсем актуально. Актуальная статья с маршрутизацией по доменам: https://habr.com/ru/articles/767464/


UPD 16.10.2022


  • Исправлены конфиги для Openwrt 22
  • Добавлен community список
  • В скрипт добавлена проверка загрузки файлов. Которая решает проблему, если при старте устройства не удалось сразу загрузить списки
  • DNSCrypt изменён на DNSCrypt v2

UPD 15.03.2023


  • Добавлена логика для работы с доменами, используются список доменов из community
  • Изменена проверка загрузки файлов в скрипте
  • В Ansible playbook теперь можно выбрать определённые списки

UPD 20.04.2023
Если у вас роутер получает IPv6 адрес, то роутинг будет работать криво. Пока нет инструкции для IPv6, поэтому нужно будет его выключить на роутере.


Часть 2: Поиск и исправление ошибок


Чем отличается от подобных материалов?


  • Реализация на чистом OpenWrt
  • Использование WireGuard
  • Конфигурация роутера организуется с помощью конфигов OpenWrt, а не кучей в одном скрипте
  • Предусмотрены ситуации при рестарте сети и перезагрузке
  • Потребляет мало ресурсов роутера: подсети содержатся в ipset, а не в таблицах маршрутизации. Что позволяет развернуть это дело даже на слабых устройствах
  • Автоматизация конфигурации с помощью Ansible (не требуется python на роутере)
Читать дальше →
Total votes 62: ↑61 and ↓1+60
Comments106

Опыт построения системы коммуникации на базе Mattermost Server

Reading time7 min
Views14K

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

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments4

Внедряем кросс-платформенные пуш-уведомления: начало

Reading time12 min
Views29K

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


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

Подтверждение входа с помощью Telegram на Spring Boot

Reading time19 min
Views14K

Недавно столкнулся с проблемой: все приложения используют Telegram-бота в качестве подтверждения входа в аккаунт, а мое — нет. Я был настроен серьезно и провёл уйму времени в интернете в поиске туториала, но меня ждало разочарование. Задача сложная и имеет много подводных камней, а туториалов — ноль.


Следующую неделю я потратил на написание своей имплементации данной фичи и готов поделиться успехом.


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


Total votes 8: ↑8 and ↓0+8
Comments6

Собираем DIY шлюз для Zigbee устройств

Reading time6 min
Views106K

Вступление


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


image


Наибольший толчок развития DIY шлюзам дал проект zigbee2mqtt. На момент написания заметки в проекте реализована поддержка 785 устройства от 140 производителей.


image


Поиск показал наличие интересных конкурентных проектов AqaraHub(написан на с, похоже, что развитие приостановлено, последний коммит был 5 месяцев назад), нативная поддержка в ioBroker (проект ведет наш соотечественник Киров Илья), нативная поддержка в Home-assistant (поддержка появилась после появления библиотеки zigpy, активно развивается, но пока далека от совершенства). Обзор программных шлюзов хорошо разобран в интернете, имеется множество статей, желающий найдет информацию по тэгам в конце статьи.

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

Как я «умный» телевизор Samsung до ума доводил — расширенный отзыв

Reading time43 min
Views213K
“Каждый человек обязан, по меньшей мере, вернуть миру столько, сколько он из него взял.” — Альберт Эйнштейн

В своей первой статье на Хабре мне хотелось бы поделиться с уважаемыми читателями подробной информацией о достоинствах и недостатках, а также личным опытом настройки модели Samsung T27H390S для удобной эксплуатации как в качестве телевизора, так и в качестве монитора.
Статья содержит оригинальные находки, которые в равной степени пригодятся владельцам других моделей и марок телевизоров или мониторов.
Будет много букв, в том числе английских, но все по делу. Для удобства навигации начну с оглавления.

Samsung OCM Support
Узнать подробности
Total votes 82: ↑78 and ↓4+74
Comments229

Так ли плох XMPP, как его малюют? Каким Jabber стал сегодня

Reading time6 min
Views81K


Часто при обсуждении мессенджеров, при упоминании XMPP можно услышать слова:
Привет из двухтысячных! Неужели кто-то еще пользуется устаревшим протоколом? В XMPP до сих пор нет доставки файлов, сообщений, синхронизации, красивых клиентов?

Причина мифов о XMPP в том, что многим Jabber известен по мессенджерам из далеких двухтысячных годов и плохой осведомленности о особенностях XMPP. С двухтысячных прошло много времени, протокол продолжил существовать и активно развиваться. Современный Jabber уже сильно не похож на тот, который был раньше.

В этой статье мы рассмотрим для чего создавался XMPP, обсудим в комментариях причины снижения его популярности и каким Jabber стал сегодня

Предыстория


В двухтысячных годах у большинства интернет-гигантов были развернуты XMPP сервера. С одного сервера можно было написать на другой и вот уже казалось, если технологию немного доделать появится e-mail 2.0, универсальный мессенджер для всего Интернета, но тут что-то пошло не так.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments193

Как живут и работают в Краснодаре

Reading time7 min
Views32K
Среди людей, работающих удалённо в ИТ и не только, популярна привычка уезжать в тёплые края вроде Таиланда, Индонезии или Индии. На месяц-другой, а то и больше. Климат там приятнее, жизнь дешевле: так почему бы не сидеть за ноутбуком с видом на соленую воду? Мы знаем способ попасть в место с приятным климатом быстрее и проще.



Вот, например, Краснодар. По части климата там всё отлично: мягкая, довольно тёплая зима; жаркое, но не до адского пекла, лето; Чёрное море — в 120 км, Азовское — в 140. Жизнь заметно дешевле, чем в столицах, а сам город меньше — а потому тише и спокойнее. Кроме того, у Краснодара есть бонусы, каких не может предложить Таиланд: например, достаточно активное IT-сообщество. И не только.
Читать дальше →
Total votes 47: ↑42 and ↓5+37
Comments353

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

Reading time6 min
Views14K
Представьте себя в комнате, например, в офисе. Душно, плотно закрыты окна, приятный еще с утра запах кофе и духов превратился в пытку. Но вы работаете, несмотря на головную боль и дурное настроение. Как принято говорить, жить можно. А теперь представьте, что открыли окна или включили кондиционер — приятная прохлада, чистый воздух, рост трудоспособности, хорошее настроение. Все условия для успешной работы.

Эта аналогия неслучайна. Малый бизнес без CRM-системы может жить, работать и зарабатывать. А малый бизнес с CRM-системой может работать качественнее, зарабатывать больше, жить лучше. И вот почему.


Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments20

25 занимательных Android библиотек. Весна 2018

Reading time5 min
Views20K
Это список из 25 новейших Android-библиотек, проектов и инструментов, выпущенных за последние 3 месяца. Здесь нет первого и последнего места, это просто список интересных библиотек. Они определённо заслуживают вашего внимания. Наслаждайтесь!


Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments2

Пишем мессенджер с открытым исходным кодом

Reading time6 min
Views71K

Зачем пишем?


tinode logo

Давным-давно в одной далекой стране была компания America Online. И был у нее удивительный частный Интернет за заборчиком, где вместо URL-ов были "keywords": что-то среднее между адресом веб страницы и купленным ключевым словом в рекламе. Компании боролись за интересные ключевые слова, как сейчас борются за домены, а реклама выглядела так: "посетите нас во всемирной сети по адресу www.example.com, или наберите AOL Keyword: 'banking'".


История имеет свойство повторяться. Сейчас роль Америки Онлайн играют основные мессенджеры: все они за заборчиками, несовместимы друг с другом, все изобретают свои keywords, желают схватить пользователя и уже никогда не отпускать. Компании не заинтересованы в открытости: более крупные игроки не желают делиться пользователями с более мелкими и уж тем более становиться открытыми. В результате невозможно послать сообщение даже из WhatsApp в Facebook Messenger, несмотря на то, что оба принадлежат одной компании. Да и пользователи ценят надежность и удобство выше абстрактной открытости, хотя многих раздражает, что часть друзей, например, в Telegram, часть в WhatsApp, а родители в Skype.


А вот роль открытого интернета, к сожалению, сегодня не играет никто. Ситуацию хочется изменить. Если XMPP не справился, может быть кто-то другой сможет? И тут рассказ про Tinode.

Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments208

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Reading time25 min
Views1.4M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

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

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Total votes 99: ↑98 and ↓1+97
Comments66
1
23 ...

Information

Rating
Does not participate
Location
Ставрополь, Ставропольский край, Россия
Date of birth
Registered
Activity