Заметки за Июль 2018
11 July 2018, 20:13 MSK
Итак, снова пост про Телеграм. Я уже рассказывал, как отправлять сообщения от имени бота (в том числе, через прокси) и как сделать бота, который умеет принимать сообщения.
Отправлять сообщения в Телеграм от бота очень просто, но есть крайне неудобная проблема: из-за ограничений Telegram Bot API бот не может писать первым. То есть, сначала пользователь, которому вы собрались что-нибудь отправить, должен первым написать вашему боту любое сообщение. Это ограничение вполне разумно и предотвращает спам сообщениями от ботов, но очень мешает честным людям. Например, отправлять сервисные сообщения с информацией о заказе в интернет-магазине.
Решение этой проблемы только одно: не использовать ботов. Придётся всё делать с обычного аккаунта.
Копаться в подробностях телеграмовского протокола MTProto не нужно, как оказалось, всё уже сделано до нас. Для PHP существует чудесная библиотека MadelineProto. Её мы и будем использовать, ниже пошаговая инструкция.
Тэги: PHPTelegramwebdev
8 July 2018, 03:20 MSK
Последнее время я увлекаюсь системами умного дома и хотел бы поделиться накопившимся опытом. В серии постов на эту тему я расскажу как о попытке сделать свою систему с нуля, так и о готовых решениях.
smart-home
Педантичный читатель обязательно придерётся к термину «умный дом». Конечно, правильнее называть это домашней автоматизацией, но я позволю себе использовать хоть и неверную, но устоявшуюся формулировку.
Сейчас на рынке присутствует очень много разрозненных решений. Ради эксперимента мне захотелось попробовать сделать что-нибудь самому.
Хороший проект всегда начинается с требований к конечному результату, вот мои:
  1. Нафиг километры проводов. У меня в квартире сделан ремонт, поэтому заново штробить стены желания совсем нет. Пусть умный дом будет обмениваться данными по радио-каналу.
  2. Нафиг бредовые идеи. Встроить айпад с интерфейсом в стену? Отправлять данные на народный мониторинг? Ну уж нет, спасибо, обойдёмся без этого.
  3. Нафиг пульты. Пульты всегда теряются и ломаются. Лучший пульт — тот, который всегда с тобой. Это телефон или часы (привет, Сири!). Также не забудем оставить классические элементы управления (настенный выключатель, ггг) для менее продвинутых домочадцев.
Теперь подумаем над архитектурой. Философия моего умного дома будет такой (привет, Юникс!):
Одно устройство должно делать только одну вещь, но должно делать её хорошо.
Такой подход лаконичен и позволяет не смешивать всё в одну кучу, не усложнять архитектуру системы, превращая устройства в многофункциональные комбайны.
2 July 2018, 00:16 MSK
Когда я был студентом и любил спорить с преподавателями, мой научный руководитель всегда просил меня не делать преждевременный рефакторинг кода. Потому что отрефакторить работающий код можно за конечное число шагов, а сколько времени займёт превращение неработающей, но отрефакторенной программы в работающую — неизвестно. Спустя годы я понял, что это работает не только в программировании, но и в жизни.