Pull to refresh
2
0
Михаил @SnowBearRu

User

Send message

4 вида распространённых ошибок в Event-Driven системах

Reading time 8 min
Views 4.3K

В последние несколько лет в крупных компаниях наблюдается значительный рост внедрения event-driven (событийно-ориентированных) систем. Каковы основные причины этой тенденции? Это чистой воды хайп или есть веские причины, побуждающие к внедрению этой архитектуры? С нашей точки зрения, основными причинами, по которым многие компании выбирают этот путь, являются:

Читать далее
Total votes 15: ↑13 and ↓2 +11
Comments 5

Всё ещё используете If/else валидацию в Spring 6.0+ / SpringBoot 3.0+?

Reading time 12 min
Views 11K

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

— POST и PUT-запросы, использующие requestBody для передачи параметров.
— GET-запросы, использующие requestParam/PathVariable для передачи параметров.

Читать далее
Total votes 19: ↑14 and ↓5 +9
Comments 11

Обзор библиотеки Actix в Rust

Level of difficulty Easy
Reading time 6 min
Views 4K

Привет, Хабр!

Actix появился на свет благодаря Николаю Киму, также известного в сообществе под ником fafhrd91. Николай создал экосистему, которая позволяет строить масштабируемые, надежные веб-приложения и микросервисы. Actix основан на модели акторов, концепции, которая была впервые предложена в 1973 году для симуляции активных компонентов в распределенных системах.

Читать далее
Total votes 15: ↑13 and ↓2 +11
Comments 11

Использование resilience4j со Spring Boot

Level of difficulty Easy
Reading time 10 min
Views 4.5K

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

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

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

Автоматический Wi-Fi выключатель и как с его помощью спасти дом от повреждений

Level of difficulty Medium
Reading time 5 min
Views 13K


Автоматические выключатели рычажного типа необходимы для защиты электропроводки и подключенного к нему оборудования. Но с развитием технологий появились WiFi автоматы которые предлагают еще больше комфорта и возможностей. В данном материале будет описываться мой опыт применения автоматического выключателя с управлением через Wi-Fi.
Читать дальше →
Total votes 25: ↑19 and ↓6 +13
Comments 50

Начало работы с Axum — самым популярным веб-фреймворком Rust

Level of difficulty Medium
Reading time 11 min
Views 9.1K


Когда дело доходит до выбора серверного веб-фреймворка в экосистеме Rust, можно запутаться из-за большого количества вариантов. В прошлом, лидером по популярности был Rocket, но сейчас за первенство сражаются Axum и actix-web, и Axum все больше набирает обороты. В этой статье мы немного погрузимся в Axum — веб-фреймворк для создания REST API на Rust, разрабатываемый командой Tokio. Он прост в использовании и хорошо совместим с Tower — надежной библиотекой для создания модульных компонентов сетевых приложений.


В этой статье мы подробно рассмотрим, как использовать Axum для создания веб-сервиса. Кроме того, мы рассмотрим изменения, которые произошли в версии 0.7.

Читать дальше →
Total votes 31: ↑28 and ↓3 +25
Comments 9

Умный многоквартирный дом «Булычев» класса А: первое знакомство

Level of difficulty Easy
Reading time 6 min
Views 11K

Спрос на квартиры с умными функциями продолжает расти. Но и покупатели, и девелоперы понимают умные функции по-разному. Как быть?

На помощь приходит разделение умных домов на классы от «‎Единого ресурса застройщиков»‎. Высший класс А получают лишь немногие многоквартирные дома в России. К счастью, нам как раз удалось в таком побывать.

Умный дом «Булычев» пока не сдан, но для посещения открыта тестовая зона на одном из этажей. Мы предлагаем отправиться вместе с нами на экскурсию и посмотреть, какие умные функции получит покупатель квартиры в этом доме.

Интересно? Ныряйте под кат.

Читать далее
Total votes 25: ↑19 and ↓6 +13
Comments 59

Ноутбуки с двумя дисплеями становятся все дешевле: выпущена модель за $400. Возможности устройства

Reading time 4 min
Views 24K

За последние пару лет производители ноутбуков и смартфонов разработали устройства с гибкими дисплеями, а также двумя (и больше) экранами. Особо массовыми такие девайсы не стали, но своя аудитория у них уже появилась, судя по выходу все новых и новых моделей смартфонов с гибкими экранами. Ноутбуки с аналогичной технологией похвастаться такой популярностью не могут, но все же и здесь есть некоторые подвижки. Подробности — под катом.
Читать дальше →
Total votes 40: ↑37 and ↓3 +34
Comments 7

Основы многопоточности в Rust

Reading time 7 min
Views 6.6K

Привет!

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

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

Читать далее
Total votes 23: ↑21 and ↓2 +19
Comments 6

Паттерн написания универсальной системы ошибок приложения

Level of difficulty Easy
Reading time 5 min
Views 6.4K

За свою карьеру написал больше 100 микросервисов и около 30 брал на сопровождение, рефакторинг и доработку. Среди них были сервисы аутентификации, криптографии, адаптеры, прокси, эмитенты токенов, DataStore/DataMart, калькулирующие измерения к срезам статистики на холодных данных и на потоке, оркестраторы с широким спектром смежных систем (пример на хабре) etc. Писал на таких языках, как С#, Java, Kotlin, Scala, Node.js. И некоторое время проходил "день сурка" в момент проектирования или рефакторинга полученного в наследство кода, когда руки доходят до аспекта логирования, мониторинга, обработки ошибок etc. В этой статье опишу с какими реализациями слоя обработки ошибок я сталкивался или находил в качестве best practice, как обычно ее интегрируют в SLA, метрики и логи, почему стал изобретать велосипед и к чему пришел, а также сравню собирательный образ классических подходов с выбраным в по итогу проб и ошибок.

Читать далее
Total votes 12: ↑7 and ↓5 +2
Comments 19

Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства

Level of difficulty Easy
Reading time 9 min
Views 33K

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

Читать далее
Total votes 37: ↑37 and ↓0 +37
Comments 112

Знакомство с WebTransport API

Level of difficulty Medium
Reading time 20 min
Views 9.2K


Hello world!


На днях я прочитал статью о WebTransport API как будущей альтернативе или даже замене WebSockets. Мне стало интересно, что это такое и с чем его едят. Давайте разбираться вместе.

Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 5

Как мы строили Норильск «на ледяной планете»

Reading time 13 min
Views 51K


60–65% территории России занимает вечная мерзлота. Она бывает разная: где-то это много относительно сухой земли, а где-то прямо линза льда (до 95% воды), причём глубиной до нескольких километров. В районе Норильска можно грубо сравнить её с замёрзшим океаном.

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

Земляне высадились в эти места строить город. Практически как на снежную планету. И это оказалась очень суровая планета: холод до -56 градусов Цельсия, разрушающий конструкции, ураганный ветер и снег, который всё заметает. Ну и ко всему этому тут есть длинная полярная ночь, если вам не хватает сложностей.

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

Современный город стоит на скальных выходах как на островах: есть центральный жилой остров, есть Оганер — остров с больницей, есть Талнах — добывающий район, отдельно есть аэропорт, есть Надежда — ещё один комбинат, есть остров Дудинка — порт в 90 километрах от центра. Есть кусок скалы — можно строить. Нет скалы — нельзя строить.

В общем, я хочу рассказать вам про удивительно прекрасный и, как это ни странно, уютный Норильск.
Читать дальше →
Total votes 342: ↑337 and ↓5 +332
Comments 614

Самый лучший тренажёр клавиатуры

Reading time 2 min
Views 9.7K

Громкий заголовок, но оно того стоит. Умение печатать сейчас значит больше, чем уметь написать что‑то от руки. Впрочем, слышал, что в некоторых странах уже и не учат писать, только печатные буквы:)

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

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

Одна из таких, старых‑престарых прог, называется просто — TRK. Или, по‑простому, тренажер клавиатуры. Да‑да, скажите сейчас вы, этих тренажеров как говна за баней, и будете правы. Но мы же говорим о самом‑самом. Итак, у вас есть клавиатура, на которой надо разместить свои руки и начинается все с «фыва олдж», как и положено.

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

Nginx и Keycloak: Идеальное сочетание для обеспечения безопасности приложений

Level of difficulty Easy
Reading time 7 min
Views 14K

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

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

Понимание разницы: Аутентификация vs Авторизация

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

1. Аутентификация

Определение: Аутентификация - это процесс проверки подлинности личности пользователя, системы или приложения. Она отвечает на вопрос: «Вы тот, за кого себя выдаете?»

Как это работает: Наиболее распространенной формой аутентификации является комбинация имени пользователя и пароля. Когда пользователь вводит эти учетные данные, система сравнивает их с сохраненными данными, чтобы подтвердить его личность. Другие методы включают биометрию (например, распознавание отпечатков пальцев или лица), OTP (одноразовые пароли) и аппаратные токены.

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

Безопасность web приложений с использованием Identity Provider

Level of difficulty Easy
Reading time 13 min
Views 3K

В современном цифровом мире, где взаимодействие с онлайн-ресурсами и web приложениями стало неотъемлемой частью нашей повседневной жизни, безопасность и управление личной идентификацией стали ключевыми аспектами. Именно в этом контексте становится крайне важным понятие “Identity Provider” или, сокращённо, IdP.

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

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

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

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

ClimateGuard CG LED: Новый Год к нам мчится…

Level of difficulty Easy
Reading time 5 min
Views 4.7K


Эта статья посвящена обзору универсальной платы управления светодиодными лентами ClimateGuard CG LED. В ней даётся краткое описание устройства платы контроллера CG LED и мои первые впечатления от работы с ней. В статье также упоминается первичная настройка прошивки WLED, которой штатно комплектуется контроллер.

Пока это только обзор платы без реализации каких-либо проектов на ней, возможно этой теме будут посвящены последующие статьи.
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 24

Микросервисы на основе событий с Kafka Streams и Spring Boot

Level of difficulty Medium
Reading time 32 min
Views 14K

Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике.

Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.

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

NFCKEY изменит ваше понимание о привычном быте

Level of difficulty Easy
Reading time 14 min
Views 5.2K

Знакомство с компанией и ответы на 9 ключевых вопросов для любого стартапа.
В чем идея? Какие отличия от конкурентов? Каков рынок и отношение к этому людей? Какой был CustDev? Как работает технология? В чем ключевые преимущества? Какие были сложности? Почему считаете, что именно у вас получится? И самый главный: «А как же это поменяет быт людей?».

Узнать ответы
Total votes 16: ↑14 and ↓2 +12
Comments 194

Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking

Level of difficulty Hard
Reading time 18 min
Views 11K

Всем доброго времени суток. В предыдущей статье я затронул тему клиентской разработки браузерной игры. В этой же публикации попробую пролить свет на детали разработки мультиплеера, а именно - разработки игрового websocket-tcp сервера на Netty.
Разберем технические особенности реализации такого сервера, способы улучшения производительности, игровую логику и т.д.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 7

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity