Умный дом - теперь и у геккона

Оригинал поста на хабре

Недавно при странных обстоятельствах у меня появился вот такой зверь:

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

Что нужно было сделать:

  • Поддерживать ему минимальную температуру ночью, но так, чтобы он не перегрелся

  • Поддерживать минимальную влажность

  • Включать ему ультрафиолетовую лампу в 5 утра, когда он любит выползать поваляться на камушке.

Вроде бы несложно. У меня был мешок реле, датчиков, Home Assistant и Arduino. Но если ты начал собирать умный дом, становится трудно остановиться. Единственное, что у меня вызывало опасение - это Arduino. Нет ничего более беспомощного, безответственного и испорченного, чем Arduino. Я знал, что рано или поздно я перейду и на эту дрянь.

Казалось бы, всё просто - засунь туда датчиков, подключи к ESP, да щёлкай релешками. Но хотелось точных датчиков, маленьких и автономных, и достаточно стабильной работы, чтобы не сварить и не заморозить животное. И тут оказался прям большой простор для разных вопросов и работы.

Алиса, открой ворота - или MVP умного дома за пару вечеров

Оригинал поста на хабре

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

Будет про:

  • Home Asistant
  • Алису и её станции
  • Ардуины и MQTT
  • управление воротами Came
  • локальное управление яндекс розетками
  • датчики движения
  • Влажность, температуру и CO2
  • Автоматический полив цветочков
  • Как при помощи всего этого развлечь детей и как они находят свои способы с этим играть.

Предпосылки

Мне всегда казалось, что умный дом это и сложно и какой-то бессмысленный выпендрёж.

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

Выпендрёж - потому что меня всегда смущал основной вариант умного дома - управление светом. До сих пор не могу понять, зачем управлять им голосом, хлопками или датчиками движения. Поднять пятую точку и нажать выключатель - хоть какая-то разминка!

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

Тем не менее, накопилось значительное количество несистематизированных огрызков:

  1. Ещё в далёком 2016 я собрал свой датчик CO2, темпераруты и влажности.
  2. На новый год ребёнок выпросил себе светодиодную ленту. Потратив какое-то время, я выбрал RGB ленту с умным контроллером MagicHome, которая внезапно сопряглась с Алисой. И это было прикольно.
  3. На новый год мы украсили на улице ёлку гирляндами. Когда мне надоело включать её руками, я заказал розетку яндекса и составил расписание включения. Заодно подключил так же уличный свет, выключатель которого висел крайне неудобно. К слову, розетки с честью выдержали нерегламентированные -15 на улице и продолжали бодро щёлкать реле.
  4. Периодически я призывал домой клининговый сервис, и каждый раз был квест с тем, как им оставить и забрать ключи. Очень хотелось решить это при помощи какого-то способа удалённого управления раздвижными воротами.
  5. У детей завелось две Яндекс.Станции, с которыми они активно общаются и слушают музыку.

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

Шедоуран 2021 отчёт

Недавно приехал с шедоурана и таки решил сесть написать небольшой отчёт.

Уже чувствую, что всё будет очень плохо структурировано, но как есть.

Общие впечатления

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

Как «активный гражданин» приучает людей к фишингу

Оригинал поста на хабре

Сначала я написал этот пост на пикабу, решив что там более релевантная аудитория и тема, но его там забанили вместе с моим аккаунтом. Что с одной стороны обидно, с другой забавно, и показывает, насколько похоже на фишинг то, чем занимается “активный гражданин”. Что даже написать об этом нельзя, чтобы тебя не посчитали мошенником.

Снимаем покрытие кода с уже запущенного Node.JS приложения

Оригинал поста на хабре

И снова я про тестирование и покрытие.

Наверное, вы уже поперхнулись кофе от вопроса “Зачем снимать покрытие с запущенного приложения” - но такая потребность периодически возникает.

Например:

  • Узнать покрытие интеграционных тестов без инстурментализации кода, завершения приложения и выгрузки репорта какими-то сторонними средствами;
  • Узнать без долгого ковыряния кода, по каким именно модулям приложения прошёл запрос;
  • Определить “мёртвый” код, который по факту не используется в приложении;
  • Узнать список транзитивных зависимостей, которые используются на определённые запросы.

Интересно? Поехали!

Как мигрировать с mocha на jest в 15 простых шагов — и зачем

Оригинал поста на хабре

Уже давно я заглядывался на фреймворк для тестирования jest, в котором есть огромное количество всяких вкусных фишек, одна из которых - многопоточное выполнение тестов. При условии того, что у меня был проект на 5000 юнит тестов, миграция обещала быть крайне полезной. Далее я расскажу 14 простых шагов, за которых мне удалось мигрировать - пусть и с некоторыми оговорками - и что мы в результате получили. Спойлер - всё получилось очень круто.

Зачем нужно столько разработчиков?

Оригинал поста на хабре

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

Для наглядного пояснения представим себе, что наш проект это корабль. Который мы уже некоторое время назад спустили с верфи, и он плывёт, радуя наш взор своим изящным профилем, а наш карман - золотыми дублонами. И вроде бы всё хорошо, но почему-то ему требуется куча людей только на то чтобы продолжать плыть. А хотелось бы, чтобы они вместо этого строили новые корабли….

Deno - время Node.JS уходит?

Оригинал поста на хабре

Прошло примерно 18 месяцев с внутреннего релиза Deno, вышел preview release, появилось несколько статей на Хабре, и Райан ездит по конференциям и рассказывает о нём. Однако я нигде так и не видел сколько-нибудь вдумчивого разбора этого проекта - почему-то все ограничиваются переводом документации…

Что же, давайте попробуем это сделать сейчас. Последние 5 лет я пишу на Node.JS, а компания OneTwoTrip, где я сейчас работаю, пишет проекты на ноде около 9 лет (да, это я писал историю про 9 лет в монолите на ноде). Так что анализ должен выйти неплохой. Тем более что я его уже рассказал на Moscow Node.JS Meetup 10, и было интересно. Кстати, если вам удобнее слушать, а не читать, то послушать и посмотреть можно вот тут. Моё выступление второе, я чувак в розовой рубашке.

9 лет в монолите на Node.JS

Оригинал поста на хабре

монолит от https://reneaigner.deviantart.com

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

Рассказать я решил про набившую оскомину тему - жизнь в монолите. Об этом на хабре уже есть сотни статей, тысячи копий сломаны в комментах, истина давно погибла в спорах, но… Дело в том, что у нас в OneTwoTrip есть весьма специфический опыт, в отличие от многих людей, которые пишут про некие архитектурные паттерны в вакууме:

  • Во-первых, нашему монолиту уже 9 лет.
  • Во-вторых, всю жизнь он провёл под хайлоадом (сейчас это 23 млн запросов в час).
  • А в NaN-ых, мы пишем наш монолит на Node.JS, который за эти 9 лет изменился до неузнаваемости. Да, мы начинали писать на ноде в 2010, безумству храбрых поём мы песню!

Так что всякой специфики и реального опыта у нас довольно много. Интересно? Поехали!