Pull to refresh
-14
0.5
Send message

Скотч, кабель, Интернет: умный съемный дом

Level of difficultyEasy
Reading time9 min
Views12K

Я люблю автоматизацию, гаджеты и IoT

Поэтому, места где я живу, рано или поздно становятся автоматизированными и обвешанными интернетом вещей

Да чего там, у меня даже бойлер по расписанию работает!

Под катом, я хочу рассказать, что я для этого делаю и как устроена моя домашняя инфраструктура, которая превращает уютную бетонную коробку в ее автоматизированную версию

Автоматизируй это
Total votes 44: ↑40 and ↓4+42
Comments53

Вертикальные солнечные часы

Level of difficultyEasy
Reading time4 min
Views1.8K

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

Читать далее
Total votes 16: ↑16 and ↓0+19
Comments2

Генерация документации из моделей с помощью Pydantic

Level of difficultyMedium
Reading time10 min
Views1.2K

Привет, меня зовут Роман Брылунов, я QA Automation в команде сервиса транспорта 2ГИС. Мы автоматизируем сервисы транспортных сценариев, таких как построение маршрутов для разных видов транспорта, построение пешеходных маршрутов, решение задачи коммивояжера. Основная часть наших тестов — функциональные тесты логики приложения.

С сервисами общаемся по HTTP, но есть и несколько внутренних сервисов со взаимодействием по gRPC. Все ответы, полученные от сервисов, мы предварительно валидируем перед обработкой в тесте. Для валидации используем библиотеку Pydantic. Это позволяет нам описывать формат взаимодействия с помощью моделей и обрабатывать ответы в виде Python-объектов вместо словаря после стандартного парсинга JSON. Тесты встроены в CI, успешное прохождение тестов является блокирующим условием для влития кода. Таким образом, чтобы внести изменения в API, необходимо актуализировать модели в тестах. В противном случае ответ от сервиса не пройдёт валидацию при прогоне тестов. 

Мы стараемся всесторонне подходить к контролю качества продукта, в том числе хотим, чтобы у продукта была красивая и актуальная документация. У наших сервисов была документация, но она обновлялась вручную. А у нас есть модели запросов и ответов, которые точно соответствуют текущему формату API. Мы подумали, что будет здорово использовать эти модели для формирования документации. Попробовали и успешно внедрили. Расскажу о том, как можно это сделать.

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

Об управлении esp32-машинками (и не только) через wifi/websocket-ы с помощью пульта на базе смартфона

Level of difficultyMedium
Reading time10 min
Views7.2K
Картинка Freepik

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

Однако, в целом, сам код прошивки таких машинок, и вся система управления в целом достаточно сложные, и, может быть, чуть позже, я расскажу о прошивке более подробно.

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

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

Парсим ценники оффлайн не привлекая внимания охраны

Reading time9 min
Views5.2K


В ритейле все должно быть разложено по полочкам — и товары, и ценники. Это не такая простая задача, как кажется на первый взгляд. Формирование собственных полочных цен требует постоянного мониторинга ценовой политики конкурентов.


В онлайн-продажах для этого есть специальные инструменты, но как быть офлайн-ритейлу, например, сетевым дискаунтерам? Увы, ни один краулер не сможет прийти в магазин конкурента, чтобы переписать ценники. А проникновение в чужие базы данных — это уже в духе героев игр Watch Dogs — совершенно незаконно.


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

Читать дальше →
Total votes 23: ↑23 and ↓0+24
Comments17

RSS лента результатов поиска в Awakari

Level of difficultyEasy
Reading time1 min
Views487

Awakari — бесплатный сервис поиска и фильтрации сообщений в режиме реального времени. Сервис ищет то, что интересно пользователю, среди тысяч сообщений в час из множества источников, таких как Fediverse, ленты RSS, каналы Телеграм.

Исторически Awakari интегрирован с Телеграм, используя его для идентификации пользователя и уведомления о результатах. В дополнение к Телеграм, теперь также доступны:

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

Возвращение к человеческим ценностям: создание и развитие человекоцентричных команд и компаний

Reading time10 min
Views876

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

Если немного конкретизировать определение, то человек Счастлив в своей в деятельности, когда ему нравится то, что он делает, он получает удовольствие, питается от этого энергией, а не тратит её, выгорая… Когда он реализует свои сильные стороны и таланты.

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

Читать далее
Total votes 8: ↑2 and ↓60
Comments2

Домашняя лаба. Как собрать домашнюю инфраструктуру мечты

Level of difficultyEasy
Reading time10 min
Views23K

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

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

Читать далее
Total votes 18: ↑12 and ↓6+6
Comments41

Еще про фото неба

Level of difficultyEasy
Reading time9 min
Views2.9K

Навеяно постом engine9. Будет некоторое количество собственных снимков с пояснениями, так или иначе связанных с наблюдениями природных и астрономических явлений.

Читать далее
Total votes 17: ↑16 and ↓1+19
Comments8

Мастер-класс по съемке и сшивке панорамных изображений

Reading time11 min
Views2.4K

Введение

Сферическая панорама должна иметь охват 360° или полный круговой обзор по горизонтали и 180° по вертикали или обзор от нижней точки (так называемый надир) до верхней точки (зенит). Если охват будет меньше - такая панорама уже не будет сферической.

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

Эта точка находится приблизительно в центральной части объектива (если точнее, то там, где находится диафрагма), но ее расположение у каждого объектива индивидуально.

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

Читать далее
Total votes 10: ↑10 and ↓0+11
Comments42

Почему JOOQ — идеальный инструмент для работы с БД при интеграционном тестировании API

Level of difficultyMedium
Reading time6 min
Views2.5K

Привет! Меня зовут Евгений, я SDET-специалист в SimbirSoft. Хочу поделиться примером того, как я автоматизировал тестирование API, заменив встроенные JDBC-средства на JOOQ. И расскажу, почему считаю это лучшим решением.

Все началось с того, что передо мной поставили задачу автоматизировать тестирование API с проверкой данных в БД. Так как проект только начинался, а я один отвечал за эту часть работы, то надо было сделать всё с нуля. Мне хотелось сделать все идеально (удобно, понятно, масштабируемо, с удобной поддержкой кода). Получилось все, кроме одного — масштабирование сверки данных из БД. Об этом и пойдет речь. А в конце вы найдете ссылку на исходный код.

Читать далее 🐞
Total votes 5: ↑4 and ↓1+3
Comments5

Как получить видео с камеры обычного квартирного домофона в умный дом

Level of difficultyHard
Reading time10 min
Views27K

У меня в квартире установлен аналоговый домофон Vizit, которому больше 10 лет.

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

Разбираюсь как лучше сделать
Total votes 38: ↑38 and ↓0+55
Comments57

Создаем простые OSINT и пентест инструменты на Python

Level of difficultyMedium
Reading time25 min
Views5K

Кобра: создаем OSINT инструмент на Python, часть 1


Итак, каждый программист желает все автоматизировать — и не только программист. В этой статье мы рассмотрим создание OSINT-инструмента на Python.


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


В этой статье мы создадим инструмент для:


  • Получения информации об IP адресе
  • Получения информации об номере телефона
  • Получение информации, есть ли IP в черных листах DNS
  • Парсер всех ссылок с сайта
  • Сканер портов
  • SYN-сканер портов
  • Сканер сессий Meterpreter для Windows 7/10
  • Virus Total API
  • Сканер SQL инъекций
  • Сканер XSS уязвимостей
  • Генератор фейкового User-Agent
  • Скрипт для изменения mac-адреса

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


Данная статья ориентирована на продвинутых разработчиков, которые уже умеют писать и читать python-код.

Читать дальше →
Total votes 13: ↑8 and ↓5+6
Comments15

Три оттенка Kubernetes Operator, или чем слушает Prometheus

Level of difficultyMedium
Reading time33 min
Views1.9K

Это ещё не туториал, но относительно подробный гайд о том, как компоненты Операторов взаимодействуют с Kubernetes API на уровне кода (Golang), чтобы реализовать заложенную в них логику для автоматизации вполне определённых практических задач. И да, всем известно, максимальный уровень автоматизации работы в Кубернетес ограничен лишь желанием самих разработчиков избавиться от рутины в близкой для них предметной области, потому я разделил текст на три части, чтобы вы могли без промедления промотать к наиболее актуальной, в которой узреете нечто достойное вашего внимания:

1. Кастомные ресурсы - мониторы Прометеус-оператора
2. Информеры и контроллеры
3. Сайдкар-Инжекторы с помощью аннотаций и вебхуков

Читать далее
Total votes 5: ↑3 and ↓2+2
Comments0

Электронная книга ONYX BOOX Faraday. Обзор модели с цветным E-Ink дисплеем, которая мне понравилась

Level of difficultyEasy
Reading time5 min
Views6.2K
До сих пор устройства с цветными E-Ink дисплеями были дорогие и недоступные. Но без особого шума вышла новая модель электронной книги Faraday от ONYX BOOX. Это современная «читалка» с 7.8-дюймовым цветным дисплеем Kaleido 3 по доступной стоимости. Внутри Android 11, 3/32 Гб памяти и 8-ядерный энергоэффективный процессор Snapdragon 662. Поддерживается оригинальная технология быстрого обмена файлами Boox Drop, а также предусмотрена функция TTS («текст в речь»), что позволяет озвучивать текстовые файлы.


Читать дальше →
Total votes 8: ↑6 and ↓2+6
Comments36

Тестируем внешнее django-приложение при помощи pytest

Level of difficultyMedium
Reading time2 min
Views1.7K

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

Итак, у вас есть джанго-приложение, апишка к нему, и вы хотите написать автотесты на пайтест, находясь вне этого джанго-приложения. Погнали.

Читать далее
Total votes 3: ↑2 and ↓1+3
Comments0

Как поправить 3 проблемы MVx архитектур

Reading time9 min
Views2K
Итак, в прошлый раз я описал три проблемы, которыми, на мой взгляд, страдают все MVx и даже некоторые не MVx архитектуры. Если коротко, то это:

  • проблема остатка — при делении фичи на заявленные компоненты архитектуры остаётся либо «неделимая» часть фичи, либо лишние компоненты архитектуры;

    image
  • проблема масштабирования — при расширении фичи компоненты архитектуры начинают раздуваться, что усложняет дальнейшую поддержку;

    image
  • и проблема разрывов логики, когда из-за взаимодействия с UI логика разрывается на части, что тоже не помогает нам делать систему более цельной, предсказуемой и тестируемой.

    image

Описание проблем это, конечно, хорошо, но вопрос в том, как их решать? Об этом я бы и хотел поразмышлять в этом тексте. Спойлер: когда я нашел решение проблемы разрывов, я понял, что оно может решить и все остальные проблемы.
Читать дальше →
Total votes 13: ↑12 and ↓1+16
Comments1

Как подготовить данные для запроса в Postman через pre-request

Level of difficultyEasy
Reading time6 min
Views3.5K

Принцип хорошего автотеста — «Подготовь себе данные сам. Не надейся, что они уже существуют». Такой тест можно прогнать на любом стенде, даже пустом. Сам себе всё подготовил, прогнал тест, а потом ещё почистил за собой.

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

Подготовка данных делается через функцию pm.sendRequest() в pre-request скриптах, и в этой статье я покажу, как её использовать. Показывать буду в стиле «бери и повторяй» с примерами на бесплатной системе Users.

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

Разбирая бэклог. Часть 11. Эксперименты Silicon and Synapse или краткий экскурс по Blizzard Arcade Collection (2021)

Level of difficultyEasy
Reading time11 min
Views906

Не утихающая в последние годы мода на различного рода ремастеры не обошла и титана игровой индустрии в лице Blizzard. Неоднозначный ремастер Warcraft III: Regorged (2020) собрал вокруг себя много шума, в то время как другой релиз, как мне показалось, прошёл не столь замеченным, в особенности его дополненный вариант. Сегодня хотелось бы кратко остановиться на сборнике Blizzard Arcade Collection (2021) и впечатлениях от такового.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments3
1
23 ...

Information

Rating
1,606-th
Registered
Activity

Specialization

Fullstack Developer
Middle
C#
.NET Core
ASP.Net
Docker
Git
Linux
Python
English
SQL