Как стать автором
Обновить
2
0
Ахмед Мирсалимов @mirsalimov

Java программист

Отправить сообщение

ИБП для всего дома STARK COUNTRY 3000 INV LT + аккумуляторы Ventura GPL 12-120

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров18K
Во многих местах за городом часто отключают электричество, но есть способ, как сделать так, чтобы практически не чувствовать этих отключений и жить в загородном доме или на даче с комфортом даже тогда, когда соседи бегают по своим тёмным домам с фонариками.

Источник бесперебойного питания (ИБП) для всего дома работает полностью автоматически, обеспечивает практически мгновенное переключение на питание от батарей при отключении электричества, а когда электричество вновь включают, переключается на питание от сети и заряжает аккумуляторы.



Читать дальше →
Всего голосов 31: ↑31 и ↓0+37
Комментарии67

Пацанский английский. Ленивый способ наконец выучить английский язык: без курсов, без зубрежки, бесплатно

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров169K

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

Наконец случилось чудо. В одну из очередных попыток я нащупал способ, который позволил продолжать развиваться, делать успехи, осознавать их и разжигать мой огонь всё сильнее и сильнее. Сегодня мне сложно представить день, проведенный без английского языка. И мне не хочется говорить без “изучения”, поскольку не сказал бы, что я именно учу. Скорее — постепенно “прошиваюсь” английским, как это обычно происходит с новорожденным детьми, которые постепенно начинают говорить, слушая и наблюдая за своими родителями. В настоящее время мой словарный запас не такой большой: 9 — 12 тысяч слов (зависит от теста). Я свободно смотрю видео на Ютубе разнообразной тематики (видеоуроки, спорт, фитнес, музыка, путешествия, кулинария, обзоры и т.д.), читаю документацию, компьютерную и популярную литературу, публицистику.

Читать далее
Всего голосов 145: ↑136 и ↓9+144
Комментарии293

Полнотекстовый поиск в java приложениях с помощью Elasticsearch

Уровень сложностиПростой
Время на прочтение41 мин
Количество просмотров2.2K

Рассмотрим, как использовать Elasticsearch в качестве поискового движка в приложениях на Spring Boot. Поговорим о стратегии реализации полнотекстового поиска, эффективной индексации сущностей JPA и их связей. Уделим внимание использованию аннотаций полей, настройке релевантности с помощью весовых коэффициентов и реализации нечёткого поиска для обработки вариаций запросов. Также обсудим методы настройки синонимических связей, многоуровневых фильтров и ранжирования результатов по релевантности для повышения качества поиска.

Читать далее
Всего голосов 14: ↑13 и ↓1+14
Комментарии0

Карманный Ansible и защита от брутфорс-атак

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров6.5K

Настраиваем fail2ban для защиты от перебора паролей на debian серверах с помощью инструмента автоматизации Ansible. Для мобильности сервер Ansible установим на OrangePi и сделаем его спряжение с мобильным телефоном.

Читать далее
Всего голосов 4: ↑3 и ↓1+4
Комментарии13

Аутентификация через телеграм в Spring Boot приложении

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.9K

Способ аутентификации через телеграм отлично описан в документации. В этой статье мы реализуем его в Spring Boot приложении.

Читать далее
Всего голосов 6: ↑3 и ↓3+4
Комментарии0

Настройка кластера высокой доступности: PostgreSQL + (Patroni и etcd)

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.1K

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

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

Немного теории. Patroni — это инструмент для управления высокодоступными кластерами PostgreSQL. Он упрощает настройку и управление репликацией благодаря автоматическому переключению на резервные узлы и восстановлению после сбоев.

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

Зачем мы это делаем?

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

Итак, приступим.

Читать далее
Всего голосов 13: ↑12 и ↓1+19
Комментарии12

Postman: почтальон на страже API

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров6.4K

Привет! Меня зовут Бальцер Вадим, я QA-инженер в команде android направления Банки.ру. Сегодня поделюсь нашим опытом внедрения автотестов обратной совместимости и интеграции их в CI. 

В материале расскажу: 
1) зачем нашей команде понадобились автотесты для контроля обратной совместимости API, почему мы выбрали Postman CI.
2) с чего начали: базовые вещи + полезные советы для начинающих.
3) есть ли жизнь за гранью проверок схемы.
4) CI и интеграция с ТестОпс.
5) к чему пришли и какие перспективы видим.

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

Читать далее
Всего голосов 14: ↑13 и ↓1+16
Комментарии2

AI-ассистент со Spring AI (Часть I)

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров4.7K

В новом переводе от команды Spring АйО показан процесс интеграции AI в немалоизвестное приложение Spring Petclinic. 

В статье автор пошагово делится своим опытом внедрения Spring AI, чтобы сделать приложение более интерактивным.

Читать далее
Всего голосов 13: ↑13 и ↓0+15
Комментарии1

50 терминов системного дизайна, которые должен знать каждый разработчик

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров18K



1. Масштабируемость / Scalability


  • Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов
  • Примером является добавление дополнительных серверов для обработки увеличившегося веб-траффика
  • Что такое масштабируемость и как ее достичь?

2. Балансировка нагрузки / Load Balancing


  • Балансировка нагрузки — это разделение входящего сетевого траффика между несколькими серверами для снижения нагрузки на каждый из них (во избежание того, чтобы на один сервер приходилось слишком много траффика)
  • Примером является распределение веб-траффика между несколькими экземплярами EC2 с помощью сервиса AWS Elastic Load Balancer (ELB)
  • Понимание балансировки нагрузки
Читать дальше →
Всего голосов 43: ↑37 и ↓6+43
Комментарии6

Оконные функции простым языком — Фреймы

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.5K

Привет всем!

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

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи :-)

Будем разбирать примеры на такой небольшой таблице, где указана прибыль (net_profit) компании на каждый месяц в рамках одного года.

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии5

Паттерны применения многопоточности на коммерческом проекте (на примере Java)

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров4.2K

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

Список рассмотренных паттернов:

Запуск асинхронного процесса по сигнал
Параллельное выполнение задач без ожидания результата
Ограничение количества потоков для вызова внешнего сервиса
Выполнение Scheduled задач
Параллельное обращение к разным источникам, с последующим объединением результатов
Контекст
Ожидание асинхронного ответа

При этом в статье я намеренно не касался низкоуровневых механизмов, таких как synchronized, lock, volatile, барьеров (разве что semaphore), потому что они значительно реже применяются в работе

Читать далее
Всего голосов 10: ↑10 и ↓0+13
Комментарии1

Автоматизируем подключение Сisco AnyConnect на Mac OS

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.9K

Так сложилось, что у меня на работе используется Cisco AnyConnect Secure Mobility Client. Периодически приходится подключаться к рабочему VPN используя эту программу. Мне, как человеку постоянно работающему в терминале, захотелось иметь под рукой консольную утилиту, которая сама введет пароль и TOTP, после чего инициирует подключение.

Как это сделать?
Всего голосов 5: ↑5 и ↓0+9
Комментарии19

Приточка на минималках или как сделать дёшево, быстро и качественно одновременно

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров26K

Вопрос — нужен ли кондиционер в своём доме или на даче в средней полосе России? Странный вопрос, скажете вы — температура летом зашкаливает же за 30 градусов!

Но этот вопрос становится не таким очевидным, когда вспомним, что:

..лето в Подмосковье имеет свои особенности.

Как воспользоваться особенностями лета
Всего голосов 16: ↑12 и ↓4+12
Комментарии89

«Голая Java» или разработка без всего

Уровень сложностиСложный
Время на прочтение33 мин
Количество просмотров24K

Рассказываю что можно сделать на одном только голом JDK. Это старое и ныне почти забытое искусство разработки без внешних библиотек и фреймворков. Работать будем «как в былинные времена» — киркой и лопатой голыми руками и немного мозгом.

Читать далее
Всего голосов 73: ↑67 и ↓6+79
Комментарии107

Создание микросервисов на Java с Dropwizard

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.5K

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

Читать далее
Всего голосов 7: ↑6 и ↓1+9
Комментарии0

Простые коммуникации в Java-приложении

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров4.7K

Привет, 

Как вы уже, наверное, знаете, Jmix — это такая платформа для разработки корпоративных приложений, построенная на основе фреймворков Spring, Vaadin и других классных технологий с открытым исходным кодом. 

Ее использование позволяет абстрагироваться от многих сложностей фронтенд-разработки. Разработчикам не обязательно учить JavaScript/TS, погружаться в особенности популярных фронтенд-фреймворков, тренироваться в верстке, чтобы иметь возможность создавать полнофункциональные веб-приложения. Достаточно просто писать код на Java и немного компоновать экраны в XML. При разработке интерфейса для Jmix под капот уходят также некоторые механики, связанные с «перекладыванием джейсонов», что открывает дополнительные возможности для написания интерактивных веб-приложений с использованием готовых компонентов и дополнений. 

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

Читать далее
Всего голосов 13: ↑11 и ↓2+11
Комментарии15

Профилирование Java-приложений: от HeapDump до Grafana

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров6.3K

Добрый день дорогой читатель. Сегодня я дам тебе несколько советов для поиска и анализа проблем в твоем Java приложении. Мы разберем такие вещи как: HeapDump, ThreadDump, VisualVM, Grafana, HikariPool, Prometheus и Garbage Collector.

Читать далее
Всего голосов 13: ↑10 и ↓3+10
Комментарии9

Java + Spring + Jakarta Validation. Самописный «аддон» для валидации Entity через БД и EntityManager

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.9K

Вот и моя первая статья на Хабре.

Посвящена она будет презентации своего небольшого решения для валидации моделей с использованием запросов к БД и EntityManager.

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

Понятно, что статья рассчитана на тех, кто уже знаком с той же Jakarta Validation.

Читать далее
Всего голосов 4: ↑4 и ↓0+8
Комментарии16

Функциональные коллекции в Java с Vavr: обзор и применение

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.7K

Приветствую всех, кто устал от бесконечных проверок на null, громоздких блоков try-catch и мутирующих коллекций. Если вы когда-нибудь мечтали о том, чтобы привнести в Java немного функциональности, то я рад рассказать вам о библиотеке Vavr.

Читать далее
Всего голосов 15: ↑12 и ↓3+13
Комментарии4

Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD

Время на прочтение10 мин
Количество просмотров6.8K

Всем привет! Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть тут. Тогда я рассказал о своём опыте внедрения этого инструмента для собственных нагрузок и сравнил подходы kubectl apply и helm install.

Управление конфигурацией в Kubernetes может осуществляться с помощью различных инструментов. Помимо Helm, можно использовать просто YAML-манифесты или же kustomize. Для каждого из этих инструментов предусмотрена своя команда.

В данной статье мы рассмотрим подход GitOps для K8s-кластеров и применим такой инструмент, как Argo CD.

Читать далее
Всего голосов 13: ↑13 и ↓0+18
Комментарии8

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Application Developer
Lead
От 600 000 ₽
Java