Pull to refresh
-11
0.7
Send message

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

Level of difficultyEasy
Reading time10 min
Views24K

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

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

Читать далее
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 time12 min
Views2.6K

Введение

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

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

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

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

Level of difficultyMedium
Reading time6 min
Views2.9K

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

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

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

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

Level of difficultyHard
Reading time10 min
Views33K

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

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

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

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

Level of difficultyMedium
Reading time33 min
Views2.4K

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

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

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

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

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


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

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

Level of difficultyMedium
Reading time2 min
Views2K

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

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

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

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

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

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

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

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

    image

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

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

Level of difficultyEasy
Reading time6 min
Views4.8K

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

В 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
Views1K

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

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

ОбАСУчиваем дачу. Опыт эксплуатации и новые идеи

Level of difficultyEasy
Reading time5 min
Views12K

Окончание затянувшейся истории.

Начало здесь.

Продолжение здесь.

«Когда дела идут хорошо, что-то должно случиться в самом ближайшем будущем»

Второй закон Чизхолма.

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

Вообще ещё в 2020г., когда мы делали на даче ремонт, и, в том числе, был установлен нормальный щиток вместо кое-как прикрученных «соплей», доставшихся от старых хозяев, знакомые мастера, увидев что я ставлю УЗО, говорили — оно у тебя выбивать будет, на дачных участках это обычное дело. Но за три года оно ни разу не сработало. А тут вдруг стало.

В это время я находился в отъезде, так что разбираться в проблеме возможности не было. А через пару недель должна была уехать на летний отдых семья, и планировалось, что дача будет поливаться автоматически. А тут такая засада… Я поразмыслил, и попросил друга снять УЗО, заменив его автоматом с током срабатывания заведомо большим, чем у автомата на входе щитка — такое временное решение представлялось самым простым. Опасности, что кого-то в результате «дёрнет» не было — даче предстояло функционировать в полностью безлюдном режиме.

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

Осознанные перерывы в работе на удаленке

Level of difficultyEasy
Reading time4 min
Views11K

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

Читать далее
Total votes 16: ↑14 and ↓2+13
Comments8

То одно, то другое: советы по борьбе с отвлекающими факторами для разработчиков

Reading time8 min
Views4.9K
Эта статья тоже вас отвлекает. Возвращайтесь к работе! Или нет.



1. Отвлекающие факторы


В разработке всё, что идет в ущерб производительности, обычно называют отвлекающими факторами. Я с ними сталкиваюсь, вы с ними сталкиваетесь, все с ними сталкиваются. Наша основная рабочая привычка – сосредотачиваться на проблеме, которую пытаемся решить, и обращать решение в код. Удерживать внимание при этом критически важно, и желательно устранять всё, что нас отвлекает. Но сумеете ли вы опознать все разновидности того, что рассеивает внимание? Давайте остановимся на этом немного подробнее.
Читать дальше →
Total votes 10: ↑9 and ↓1+11
Comments2

Пишем plugin для Jetbrains IDE: отображение файлов вне проекта в Project Tool

Level of difficultyMedium
Reading time9 min
Views1.7K

Доброго времени суток, дорогой читатель. Меня зовут Михаил, я Android-разработчик в компании Циан. Этой статьёй я открываю для себя цикл статей по внутренней кухне разработки плагинов для Jetbrains IDE: IDEA, Android Studio (AS) и пр. На дворе 2024 год, официальная документация не так богата информацией, как хотелось бы. Но есть исходники, которые смело можно дербанить. В этом цикле статей я буду описывать свой опыт поиска нужной мне информации и её разбор.

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

Настройка bluetooth микрофона с шумоподавлением в PipeWire

Level of difficultyMedium
Reading time13 min
Views1.3K

В череде дней «длинных» майских праздников решил развернуть голосовой помощник на сервере домашней автоматизации Home Assistant. Мой домашний сервер работает под управлением ОС Ubuntu Server 23.10 и не имеет никаких предустановленных источников или приемников аудио и видео информации. В Ubuntu были установлены аудиосервер PipeWire и менеджер сеансов WirePlumber. Такой выбор был продиктован тем, что эти приложения являются стандартным ПО по обработке аудио и видео потоков в Linux. В сети мне не удалось обнаружить какого-либо полного описания процесса настройки, и эта статья, в некоторой степени, восполняет этот пробел.

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

Как случайно написать систему мониторинга (еще одну)

Level of difficultyEasy
Reading time3 min
Views4.7K

Интересно как-то у меня выходит - мои пет проекты получаются случайно. Нет финальной цели, есть только импульс: "О! А это звучит интересно, как же это можно сделать?". И все: "сон для слабаков", "пиво в пятницу? конечно не буду!" и все в таком духе. Как говорится - есть только путь. И это история началась примерно так же... Вечерело На работе мне было нечем заняться, нужно было поставить некоторое количество сервером и сервисов на мониторинг, но из-за большой бюрократии в компании сделать это было не просто, да и сама мониторинговая система работала на базе SNMP, вот только где взять SNMP у самописного сервиса? И тут в голову пришла гениальная идея попробовать самому. К тому же сложным это не выглядело: мониторинг портов, http и куда-нибудь отправить алерт. "Почему бы и не да" - подумал я, к тому же больше познаю Python. И так появился он...

Простенький мониторинг, который как-то, что-то делает, что-то показывает и даже консольная тулза есть:

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

Распознавание именованных сущностей: механизм, методики, сценарии использования и реализация

Reading time13 min
Views1.8K

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

Мы, люди, без проблем различаем значения и категории. Это свидетельствует о нашем интуитивном понимании окружающего мира. Но когда дело касается компьютеров, эта, казалось бы, простая задача превращается в неоднозначную проблему. Подобные трудности подчёркивают необходимость надёжного распознавания именованных сущностей (named entity recognition, NER) — механизма, при помощи которого мы учим машины понимать различные лингвистические нюансы.

В этой статье мы расскажем о том, что такое NER, о его принципах работы и о том, как оно используется в реальной жизни. Также в ней мы прольём свет на различные методики NER и способы реализации модели NER.
Читать дальше →
Total votes 2: ↑2 and ↓0+4
Comments0

RTMP-поток

Level of difficultyEasy
Reading time4 min
Views1.6K

Сегодня мы рассмотрим RTMP-потоки, которые хоть и считаются уже ветеранами среди протоколов передачи данных, но до сих пор остаются частью инфраструктуры видеостриминга.

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

Information

Rating
1,618-th
Registered
Activity

Specialization

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