MultiDirectory: российская альтернатива Active Directory с 2FA, SSO и совместимостью с AD
MultiDirectory от компании МУЛЬТИФАКТОР — современная служба каталогов для централизованного хранения данных и управления информацией о пользователях, группах и сетевых ресурсах. Она помогает российским компаниям администрировать инфраструктуру с помощью удобных инструментов и гибких механизмов для поиска и фильтрации данных. Рассказываем об особенностях и функционале MultiDirectory.
Читать: «MultiDirectory: российская альтернатива Active Directory с 2FA, SSO и совместимостью с AD»
@a_cup_of_java | Другие наши каналы
MultiDirectory от компании МУЛЬТИФАКТОР — современная служба каталогов для централизованного хранения данных и управления информацией о пользователях, группах и сетевых ресурсах. Она помогает российским компаниям администрировать инфраструктуру с помощью удобных инструментов и гибких механизмов для поиска и фильтрации данных. Рассказываем об особенностях и функционале MultiDirectory.
Читать: «MultiDirectory: российская альтернатива Active Directory с 2FA, SSO и совместимостью с AD»
@a_cup_of_java | Другие наши каналы
❤3
Архитектурные принципы Spring Security. Часть третья
Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль.
Доклад публикуется тремя частями. В первой части было рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр. Во второй части мы рассказали об
Читать: https://habr.com/ru/companies/spring_aio/articles/915158/?utm_campaign=915158
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела и адаптировала доклад Даниэля Гарнье-Муару “Spring Security Architecture Principles”, в котором на наглядных примерах рассказывается, как пользоваться возможностями Spring Security, не запутываясь на каждом шагу и не зарабатывая себе головную боль.
Доклад публикуется тремя частями. В первой части было рассказано об основных подходах к созданию цепочек фильтров, а также разработан простейший фильтр. Во второй части мы рассказали об
Authentication объектах и продемонстрировали, как разработать специализированный фильтр для обеспечения доступа программы-робота к основному приложению. В третьей части мы поговорим об абстракции AuthenticationProvider и приведем пример ее использования.Читать: https://habr.com/ru/companies/spring_aio/articles/915158/?utm_campaign=915158
@a_cup_of_java | Другие наши каналы
❤3
Семантический поиск по статьям Хабра в PostgreSQL + индексация текстов LLM в Ollama
Покажу вам практическую реализацию семантического поиска на основе векторных представлений - эмбеддингов из текста. Здесь я создам систему, которая анализирует статьи с Хабра, извлекает из них темы и ключевые слова с помощью локально работающих больших языковых моделей LLM, и на основе этих данных создает векторные представления для эффективного поиска по смыслу, а не по запросу на вхождение определенного текста.
Читать: https://habr.com/ru/articles/915348/?utm_campaign=915348
@a_cup_of_java | Другие наши каналы
Покажу вам практическую реализацию семантического поиска на основе векторных представлений - эмбеддингов из текста. Здесь я создам систему, которая анализирует статьи с Хабра, извлекает из них темы и ключевые слова с помощью локально работающих больших языковых моделей LLM, и на основе этих данных создает векторные представления для эффективного поиска по смыслу, а не по запросу на вхождение определенного текста.
Читать: https://habr.com/ru/articles/915348/?utm_campaign=915348
@a_cup_of_java | Другие наши каналы
❤2👍1😁1
Эволюция Java в 2025 году: ключевые тренды и успешные кейсы
В 2025 году Java продолжает развиваться благодаря таким технологиям, как GraalVM и Project Loom. Язык становится более быстрым и эффективным инструментом для создания решений в сфере искусственного интеллекта, облачных нативных приложений, систем Интернета вещей и масштабируемых микросервисов. В этой статье рассмотрим ключевые тренды, поддерживающие актуальность Java в современной разработке программного обеспечения.
Читать: https://habr.com/ru/companies/otus/articles/915498/?utm_campaign=915498
@a_cup_of_java | Другие наши каналы
В 2025 году Java продолжает развиваться благодаря таким технологиям, как GraalVM и Project Loom. Язык становится более быстрым и эффективным инструментом для создания решений в сфере искусственного интеллекта, облачных нативных приложений, систем Интернета вещей и масштабируемых микросервисов. В этой статье рассмотрим ключевые тренды, поддерживающие актуальность Java в современной разработке программного обеспечения.
Читать: https://habr.com/ru/companies/otus/articles/915498/?utm_campaign=915498
@a_cup_of_java | Другие наши каналы
❤3👍1
AI-ассистенты для кодинга в 2025: сравниваем GigaChat, Claude, GPT-4o и DeepSeek на реальных задачах
В наши дни, кажется, каждый второй пишет AI-ассистента для разработчиков. Но работает ли это в реальности? Мы решили проверить на себе и сравнить самых популярных помощников.
Внутри команды у нас 14 Java-разработчиков — от мидлов до уверенных сеньоров. Все мы работаем в боевом проекте, и стало интересно: может ли AI реально помочь в повседневной разработке, или это всё больше про хайп?
Читать: https://habr.com/ru/companies/itfb/articles/915506/?utm_campaign=915506
@a_cup_of_java | Другие наши каналы
В наши дни, кажется, каждый второй пишет AI-ассистента для разработчиков. Но работает ли это в реальности? Мы решили проверить на себе и сравнить самых популярных помощников.
Внутри команды у нас 14 Java-разработчиков — от мидлов до уверенных сеньоров. Все мы работаем в боевом проекте, и стало интересно: может ли AI реально помочь в повседневной разработке, или это всё больше про хайп?
Читать: https://habr.com/ru/companies/itfb/articles/915506/?utm_campaign=915506
@a_cup_of_java | Другие наши каналы
Как я учил жёлтый ИИ торговать и обманывать друг друга
В предыдущей статье я учил существ рисовать узоры и привлекать внимание человека. Теперь я пошёл дальше — дал им возможность «торговать» друг с другом. Простая экономика и координация действий через обмен. В этой статье — как это устроено, какие алгоритмы я использовал и почему торговля среди глупых жёлтых существ оказалась совсем не глупой.
Читать
Читать: https://habr.com/ru/articles/914432/?utm_campaign=914432
@a_cup_of_java | Другие наши каналы
В предыдущей статье я учил существ рисовать узоры и привлекать внимание человека. Теперь я пошёл дальше — дал им возможность «торговать» друг с другом. Простая экономика и координация действий через обмен. В этой статье — как это устроено, какие алгоритмы я использовал и почему торговля среди глупых жёлтых существ оказалась совсем не глупой.
Читать
Читать: https://habr.com/ru/articles/914432/?utm_campaign=914432
@a_cup_of_java | Другие наши каналы
Как NASA ошиблись в исходном коде планеты
Баги в коде — явление нередкое, но сегодня мы исследуем не просто ошибки, а настоящие космические баги! Что скрывает проект, созданный в недрах NASA? Готовьте свои шапочки из фольги!
Поехали!
Читать: https://habr.com/ru/companies/pvs-studio/articles/915850/?utm_campaign=915850
@a_cup_of_java | Другие наши каналы
Баги в коде — явление нередкое, но сегодня мы исследуем не просто ошибки, а настоящие космические баги! Что скрывает проект, созданный в недрах NASA? Готовьте свои шапочки из фольги!
Поехали!
Читать: https://habr.com/ru/companies/pvs-studio/articles/915850/?utm_campaign=915850
@a_cup_of_java | Другие наши каналы
Циклическая зависимость, не надо бороться, надо дизайнить
Разберемся откуда берутся циклические зависимости и что с этим делать на примере эволюции простенького сервиса.
Читать: https://habr.com/ru/articles/915356/?utm_campaign=915356
@a_cup_of_java | Другие наши каналы
Разберемся откуда берутся циклические зависимости и что с этим делать на примере эволюции простенького сервиса.
Читать: https://habr.com/ru/articles/915356/?utm_campaign=915356
@a_cup_of_java | Другие наши каналы
Покерная лаборатория закрывается, ловите исходники
Я делал этот проект более полутора лет, сейчас отказываюсь от него. И, чтобы эти полтора года не были прожиты зря) открываю исходники. Java+Spring.
Принимайте проект «как есть», со всеми ad-hoc костылями, незаконченными исследованиями, TODOs, а также всевозможными KISS, DRY, и, как их… SOLID с GoF.
Предполагается, что вы знакомы с покером, имеете неплохие навыки программирования, поверхностно разбираетесь в теории игр.
Читать: https://habr.com/ru/articles/915882/?utm_campaign=915882
@a_cup_of_java | Другие наши каналы
Я делал этот проект более полутора лет, сейчас отказываюсь от него. И, чтобы эти полтора года не были прожиты зря) открываю исходники. Java+Spring.
Принимайте проект «как есть», со всеми ad-hoc костылями, незаконченными исследованиями, TODOs, а также всевозможными KISS, DRY, и, как их… SOLID с GoF.
Предполагается, что вы знакомы с покером, имеете неплохие навыки программирования, поверхностно разбираетесь в теории игр.
Читать: https://habr.com/ru/articles/915882/?utm_campaign=915882
@a_cup_of_java | Другие наши каналы
Как ускорить Java-приложения с помощью GPU и CUDA
Пост: Статья рассказывает, как интеграция CUDA с Java позволяет повысить производительность задач в 10–100 раз. Использование JNI открывает возможности GPU-ускорения для шифрования, аналитики и других вычислительно сложных процессов в корпоративной среде. Ускорение Java-приложений с помощью CUDA: интеграция через JNI позволяет поднять производительность шифрования и хэширования данных до миллионов операций в секунду. В статье разбирают реализацию, советы по памяти, безопасности и развёртыванию GPU-ускоренного кода.
Подробности: https://www.infoq.com/articles/cuda-integration-for-java/
#en
@a_cup_of_java | Другие наши каналы
Пост: Статья рассказывает, как интеграция CUDA с Java позволяет повысить производительность задач в 10–100 раз. Использование JNI открывает возможности GPU-ускорения для шифрования, аналитики и других вычислительно сложных процессов в корпоративной среде. Ускорение Java-приложений с помощью CUDA: интеграция через JNI позволяет поднять производительность шифрования и хэширования данных до миллионов операций в секунду. В статье разбирают реализацию, советы по памяти, безопасности и развёртыванию GPU-ускоренного кода.
Подробности: https://www.infoq.com/articles/cuda-integration-for-java/
#en
@a_cup_of_java | Другие наши каналы
👾1
Новый уровень разработки AI в Java: Embabel — фреймворк от создателя Spring Роджера Джонсона. Он позволяет создавать интеллектуальные агенты с надежным планированием действий и полной типизацией, упрощая интеграцию ИИ в корпоративные приложения на JVM.
Подробности: https://www.infoq.com/news/2025/06/introducing-embabel-ai-agent/
#en
@a_cup_of_java | Другие наши каналы
Подробности: https://www.infoq.com/news/2025/06/introducing-embabel-ai-agent/
#en
@a_cup_of_java | Другие наши каналы
Как отправлять email из кода: nodemailer, SMTP и HTML-письма
Как отправлять email из кода. Показываем, как отправлять письма через Nodemailer, SMTP и HTML. Рассматриваем пошаговую инструкцию и основные нюансы ✔ Tproger
Читать: «Как отправлять email из кода: nodemailer, SMTP и HTML-письма»
@a_cup_of_java | Другие наши каналы
Как отправлять email из кода. Показываем, как отправлять письма через Nodemailer, SMTP и HTML. Рассматриваем пошаговую инструкцию и основные нюансы ✔ Tproger
Читать: «Как отправлять email из кода: nodemailer, SMTP и HTML-письма»
@a_cup_of_java | Другие наши каналы
Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито
Meta* и Яндекс отслеживали действия пользователей Android даже в режиме инкогнито через соединение с localhost. Использовались скрипты Pixel и Метрики, встроенные на миллионы сайтов. Теперь механизм отключён, но работал с 2017 года.
Читать: «Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито»
@a_cup_of_java | Другие наши каналы
Meta* и Яндекс отслеживали действия пользователей Android даже в режиме инкогнито через соединение с localhost. Использовались скрипты Pixel и Метрики, встроенные на миллионы сайтов. Теперь механизм отключён, но работал с 2017 года.
Читать: «Meta* и Яндекс годами собирали данные о вас через локальные порты Android. Даже в режиме инкогнито»
@a_cup_of_java | Другие наши каналы
🆒4
Нашел, проверил, убедил: как мы организовали генерацию SQL-запросов, проверку сложных данных и при чем здесь Allure
Привет, Хабр!
Я, Михаил Герасимов, инженер РСХБ-Интех. Уже два года занимаюсь автоматизацией тестирования, и за это время успел написать (и переписать) немало SQL-запросов. Вместе с моим коллегой Михаилом Палыгой мы развиваем инструменты для автоматизированного тестирования, и сегодня расскажем вам о том как мы справляемся с построением сложных SQL-запросов и проверкой объектов в базе данных, на примере нашей библиотеки CheckMateDB для автоматизации тестирования банковской системы ЦФТ-Банк.
В статье опишем проблемы, с которыми сталкивались при ручном написании SQL-запросов и проверке данных: дублирование кода, сложность поддержки, отсутствие единого стиля и низкая информативность тестов. Для решения этих проблем мы разработали инструмент QueryBuilder, который позволяет динамически генерировать SQL-запросы с помощью Java-кода.
Мы создали иерархию классов CriteriaBasic и Table для удобного описания критериев поиска данных в базе, используя паттерн fluent interface. Также мы разработали кастомные классы проверок на базе AssertJ с поддержкой Allure-шагов, которые позволяют проверять сложные многоуровневые объекты с возможностью погружения во вложенные структуры. Для облегчения рутинной работы создали плагин, автоматически генерирующий классы DTO и Table на основе структуры базы данных. Библиотека интегрирована с Hibernate через DaoCommon, что обеспечивает удобное выполнение SQL-запросов и управление сессиями. Результатом стало существенное улучшение читаемости тестов, повышение переиспользуемости кода, стандартизация подхода к тестированию и создание информативных Allure-отчетов.
Читать: https://habr.com/ru/companies/rshb/articles/916148/?utm_campaign=916148
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Я, Михаил Герасимов, инженер РСХБ-Интех. Уже два года занимаюсь автоматизацией тестирования, и за это время успел написать (и переписать) немало SQL-запросов. Вместе с моим коллегой Михаилом Палыгой мы развиваем инструменты для автоматизированного тестирования, и сегодня расскажем вам о том как мы справляемся с построением сложных SQL-запросов и проверкой объектов в базе данных, на примере нашей библиотеки CheckMateDB для автоматизации тестирования банковской системы ЦФТ-Банк.
В статье опишем проблемы, с которыми сталкивались при ручном написании SQL-запросов и проверке данных: дублирование кода, сложность поддержки, отсутствие единого стиля и низкая информативность тестов. Для решения этих проблем мы разработали инструмент QueryBuilder, который позволяет динамически генерировать SQL-запросы с помощью Java-кода.
Мы создали иерархию классов CriteriaBasic и Table для удобного описания критериев поиска данных в базе, используя паттерн fluent interface. Также мы разработали кастомные классы проверок на базе AssertJ с поддержкой Allure-шагов, которые позволяют проверять сложные многоуровневые объекты с возможностью погружения во вложенные структуры. Для облегчения рутинной работы создали плагин, автоматически генерирующий классы DTO и Table на основе структуры базы данных. Библиотека интегрирована с Hibernate через DaoCommon, что обеспечивает удобное выполнение SQL-запросов и управление сессиями. Результатом стало существенное улучшение читаемости тестов, повышение переиспользуемости кода, стандартизация подхода к тестированию и создание информативных Allure-отчетов.
Читать: https://habr.com/ru/companies/rshb/articles/916148/?utm_campaign=916148
@a_cup_of_java | Другие наши каналы
❤1
Java Digest #25
Всем привет! 👋👋👋👋👋
Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Читать свежий выпуск
Читать: https://habr.com/ru/companies/tbank/articles/916168/?utm_campaign=916168
@a_cup_of_java | Другие наши каналы
Всем привет! 👋👋👋👋👋
Мы Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Читать свежий выпуск
Читать: https://habr.com/ru/companies/tbank/articles/916168/?utm_campaign=916168
@a_cup_of_java | Другие наши каналы
❤4
От конфигурации к динамике. Новый API по созданию бинов в Spring
В Spring Framework 7 появился новый API —
– Как Spring Data справлялась с динамической регистрацией раньше;
– Почему
– Чем хорош новый
– Какие нюансы возникают при попытке работать с
Читать: https://habr.com/ru/companies/spring_aio/articles/915512/?utm_campaign=915512
@a_cup_of_java | Другие наши каналы
В Spring Framework 7 появился новый API —
BeanRegistry, который упрощает и расширяет возможности по динамической регистрации бинов. Это особенно актуально, когда невозможно заранее предсказать, сколько компонентов потребуется, как в случае со Spring Data. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, вы узнаете:– Как Spring Data справлялась с динамической регистрацией раньше;
– Почему
SingletonBeanRegistry и BeanDefinitionRegistry недостаточны;– Чем хорош новый
BeanRegistry, и как он решает старые проблемы;– Какие нюансы возникают при попытке работать с
Environment в ранних фазах жизненного цикла контекста.Читать: https://habr.com/ru/companies/spring_aio/articles/915512/?utm_campaign=915512
@a_cup_of_java | Другие наши каналы
❤2
Одноклассовый энтерпрайз
В пригороде далекого города Нью-Дели жил простой индийский паренек со сложным именем Чандракант. Любил он маму, Кришну и общаться с волшебными говорящими грибами.
Читать: https://habr.com/ru/articles/916450/?utm_campaign=916450
@a_cup_of_java | Другие наши каналы
В пригороде далекого города Нью-Дели жил простой индийский паренек со сложным именем Чандракант. Любил он маму, Кришну и общаться с волшебными говорящими грибами.
Читать: https://habr.com/ru/articles/916450/?utm_campaign=916450
@a_cup_of_java | Другие наши каналы
😱3👍1
Интеграция API-тестов с Jenkins Pipeline: с чего начать?
Вы написали серию интеграционных API-тестов на Java (с использованием TestNG и RestAssured) и хотите, чтобы они сами запускались при каждом изменении кода? Отличная идея! Настроив Continuous Integration/Continuous Delivery (CI/CD), вы избавитесь от рутины ручного прогона тестов и получите быстрый фидбэк о качестве системы. В этой статье я в живой манере расскажу, как шаг за шагом встроить ваши API-тесты в Jenkins Pipeline на локальном сервере. Вас ждёт установка Jenkins, подключение Maven-проекта, написание Jenkinsfile (Groovy Pipeline скрипта), настройка красивых Allure-отчётов, интеграция с GitHub и даже автоматический деплой при успешном прохождении тестов. Поехали!
Читать: https://habr.com/ru/articles/916540/?utm_campaign=916540
@a_cup_of_java | Другие наши каналы
Вы написали серию интеграционных API-тестов на Java (с использованием TestNG и RestAssured) и хотите, чтобы они сами запускались при каждом изменении кода? Отличная идея! Настроив Continuous Integration/Continuous Delivery (CI/CD), вы избавитесь от рутины ручного прогона тестов и получите быстрый фидбэк о качестве системы. В этой статье я в живой манере расскажу, как шаг за шагом встроить ваши API-тесты в Jenkins Pipeline на локальном сервере. Вас ждёт установка Jenkins, подключение Maven-проекта, написание Jenkinsfile (Groovy Pipeline скрипта), настройка красивых Allure-отчётов, интеграция с GitHub и даже автоматический деплой при успешном прохождении тестов. Поехали!
Читать: https://habr.com/ru/articles/916540/?utm_campaign=916540
@a_cup_of_java | Другие наши каналы
Топ-20 вопросов по Ansible для интервью в DevOps и разработке
В статье собраны ключевые вопросы и ответы по Ansible, которые помогут подготовиться к собеседованиям. Рассматриваются основы автоматизации, принципы работы с плейбуками и отличия Ansible от других инструментов. Лучшие вопросы для подготовки к интервью по Java и IT В статье собраны сложные и популярные вопросы по Java, SQL, Linux, Spring, Hibernate и другим темам, которые помогут эффективно подготовиться к собеседованию и повысить шансы на успех. Топ курсов и ресурсов для изучения IT в 2025 году
Обзор лучших бесплатных и платных онлайн-курсов и книг по программированию, веб-разработке, системному дизайну, машинному обучению и другим востребованным технологиям. Поможет выбрать качественное обучение для старта и развития.
Подробности: http://www.java67.com/2022/09/top-20-ansible-interview-questions.html
#en
@a_cup_of_java | Другие наши каналы
В статье собраны ключевые вопросы и ответы по Ansible, которые помогут подготовиться к собеседованиям. Рассматриваются основы автоматизации, принципы работы с плейбуками и отличия Ansible от других инструментов. Лучшие вопросы для подготовки к интервью по Java и IT В статье собраны сложные и популярные вопросы по Java, SQL, Linux, Spring, Hibernate и другим темам, которые помогут эффективно подготовиться к собеседованию и повысить шансы на успех. Топ курсов и ресурсов для изучения IT в 2025 году
Обзор лучших бесплатных и платных онлайн-курсов и книг по программированию, веб-разработке, системному дизайну, машинному обучению и другим востребованным технологиям. Поможет выбрать качественное обучение для старта и развития.
Подробности: http://www.java67.com/2022/09/top-20-ansible-interview-questions.html
#en
@a_cup_of_java | Другие наши каналы
Топ 24 вопроса по работе с датой и временем в Java для успешного интервью
Статья разбирает ключевые особенности Date Time API, проблемы SimpleDateFormat и практические задачи для подготовки к собеседованиям Java-разработчиков. Полезно для углубления знаний и отработки навыков.
Подробности: http://www.java67.com/2017/08/top-10-date-time-and-calendar-Java-Interview-Questions.html
#en
@a_cup_of_java | Другие наши каналы
Статья разбирает ключевые особенности Date Time API, проблемы SimpleDateFormat и практические задачи для подготовки к собеседованиям Java-разработчиков. Полезно для углубления знаний и отработки навыков.
Подробности: http://www.java67.com/2017/08/top-10-date-time-and-calendar-Java-Interview-Questions.html
#en
@a_cup_of_java | Другие наши каналы
2f7083a3-065d-4fb9-a7d9-19757692529e.gif
25.3 KB
Топ-43 вопроса по Java IO и работе с файловой системой для разработчиков с опытом 1-3 года. В статье собраны часто задаваемые вопросы с ответами, которые помогут лучше понять работу с файлами и подготовиться к собеседованию в Java. Полезно для практики и быстрого решения задач. Лучшие вопросы для собеседований по Java и не только
В подборке собраны разнообразные вопросы для подготовки к интервью: от базовых и продвинутых тем Java до потоков, SQL, Linux и дизайна ПО. Полезный ресурс для эффективной подготовки и повышения шансов на успех. Топ курсов для изучения IT в 2025 году
Обзор включает лучшие онлайн-курсы и книги по программированию, машинному обучению, веб-разработке, системному дизайну и другим направлениям. Полезно для тех, кто хочет развиваться и быть в тренде индустрии.
Подробности: http://www.java67.com/2020/02/40-java-io-and-files-interview-questions-answers.html
#en
@a_cup_of_java | Другие наши каналы
В подборке собраны разнообразные вопросы для подготовки к интервью: от базовых и продвинутых тем Java до потоков, SQL, Linux и дизайна ПО. Полезный ресурс для эффективной подготовки и повышения шансов на успех. Топ курсов для изучения IT в 2025 году
Обзор включает лучшие онлайн-курсы и книги по программированию, машинному обучению, веб-разработке, системному дизайну и другим направлениям. Полезно для тех, кто хочет развиваться и быть в тренде индустрии.
Подробности: http://www.java67.com/2020/02/40-java-io-and-files-interview-questions-answers.html
#en
@a_cup_of_java | Другие наши каналы
👍1