Подключаем LLMку в свой Java/Kotlin проект через Docker
Всем привет, сегодня я расскажу как подключить LLMку через докер в ваш проект под разные задачи, необязательно это будет написание кода или тестов, возможно, вы захотите решать просто бытовые задачи или развлечься с ИИ.
Мы будем использовать Java/Kotlin + Docker + Ollama.
Читать: https://habr.com/ru/articles/965426/?utm_campaign=965426
@a_cup_of_java | Другие наши каналы
Всем привет, сегодня я расскажу как подключить LLMку через докер в ваш проект под разные задачи, необязательно это будет написание кода или тестов, возможно, вы захотите решать просто бытовые задачи или развлечься с ИИ.
Мы будем использовать Java/Kotlin + Docker + Ollama.
Читать: https://habr.com/ru/articles/965426/?utm_campaign=965426
@a_cup_of_java | Другие наши каналы
❤4
Kafka для начинающих: гарантии доставки на практике и настройка идемпотентности
Почему exactly-once — это миф? Как защититься от дубликатов в распределённых системах?
Продолжаем работу с Kafka на практике и рассматриваем более интересные темы.
Простым языком и с примерами кода о непростых концепциях и паттернах.
Читать: https://habr.com/ru/articles/961048/?utm_campaign=961048
@a_cup_of_java | Другие наши каналы
Почему exactly-once — это миф? Как защититься от дубликатов в распределённых системах?
Продолжаем работу с Kafka на практике и рассматриваем более интересные темы.
Простым языком и с примерами кода о непростых концепциях и паттернах.
Читать: https://habr.com/ru/articles/961048/?utm_campaign=961048
@a_cup_of_java | Другие наши каналы
Искусственный интеллект в роли архитектора кода: возможности и ограничения
Автор: Денис Аветисян
Первое масштабное исследование показывает, как нейросети справляются с задачей рефакторинга программного кода.
Читать: https://habr.com/ru/articles/965664/?utm_campaign=965664
@a_cup_of_java | Другие наши каналы
Автор: Денис Аветисян
Первое масштабное исследование показывает, как нейросети справляются с задачей рефакторинга программного кода.
Читать: https://habr.com/ru/articles/965664/?utm_campaign=965664
@a_cup_of_java | Другие наши каналы
Математик или программист? Какие знания нужны ML‑специалисту
Интервью про ML: бустинг против нейросетей, работа с LLM, валидация и культура кода в команде
Читать: «Математик или программист? Какие знания нужны ML‑специалисту»
@a_cup_of_java | Другие наши каналы
Интервью про ML: бустинг против нейросетей, работа с LLM, валидация и культура кода в команде
Читать: «Математик или программист? Какие знания нужны ML‑специалисту»
@a_cup_of_java | Другие наши каналы
❤🔥1
Как дефолтная пагинация в Spring сломала проект и как это починить
Всем привет, сегодня я хотел бы поделиться с вами историей про Spring пагинацию, почему она ужасна, как она вызвала кучу проблем и как ее починить.
Читать: https://habr.com/ru/articles/965794/?utm_campaign=965794
@a_cup_of_java | Другие наши каналы
Всем привет, сегодня я хотел бы поделиться с вами историей про Spring пагинацию, почему она ужасна, как она вызвала кучу проблем и как ее починить.
Читать: https://habr.com/ru/articles/965794/?utm_campaign=965794
@a_cup_of_java | Другие наши каналы
Почему простые фичи — самые сложные: история о пет-проекте, Дженге и маржинальной торговле
Привет, Хабр! Меня зовут Иван, и сегодня я хочу поделиться историей о своём пет‑проекте A‑Zero. Истории про провалы традиционно интереснее историй об успехах, и моя как раз такая (почти). Довольно бодро начинавшийся проект чуть было не свёл меня с ума из‑за одной единственной фичи, «просочившейся» в MVP, и сейчас я расскажу, как я из этого выкарабкался и чему научился по дороге.
Читать: https://habr.com/ru/articles/965896/?utm_campaign=965896
@a_cup_of_java | Другие наши каналы
Привет, Хабр! Меня зовут Иван, и сегодня я хочу поделиться историей о своём пет‑проекте A‑Zero. Истории про провалы традиционно интереснее историй об успехах, и моя как раз такая (почти). Довольно бодро начинавшийся проект чуть было не свёл меня с ума из‑за одной единственной фичи, «просочившейся» в MVP, и сейчас я расскажу, как я из этого выкарабкался и чему научился по дороге.
Читать: https://habr.com/ru/articles/965896/?utm_campaign=965896
@a_cup_of_java | Другие наши каналы
HotSpot на iOS: OpenJDK запускается на iPhone
InfoQ сообщает, что OpenJDK Mobile под руководством Johan Vos собрал HotSpot/Zero для iOS. План — сочетать Zero с AOT (Project Leyden) и OpenJFX, чтобы обойти запрет Apple на JIT и сделать Java пригодной для мобильных приложений.
Подробности: https://www.infoq.com/news/2025/11/java-on-ios/
#en
@a_cup_of_java | Другие наши каналы
InfoQ сообщает, что OpenJDK Mobile под руководством Johan Vos собрал HotSpot/Zero для iOS. План — сочетать Zero с AOT (Project Leyden) и OpenJFX, чтобы обойти запрет Apple на JIT и сделать Java пригодной для мобильных приложений.
Подробности: https://www.infoq.com/news/2025/11/java-on-ios/
#en
@a_cup_of_java | Другие наши каналы
Странности в исключениях JVM с точки зрения декомпилятора
Некоторое время назад я немного поэкспериментировала, пытаясь научиться декомпилировать файлы классов Java более эффективно, чем позволяют традиционные инструменты, предназначенные для этого — например, Vineflower. В конце концов, я написала статью, в которой изложила мой подход к декомпиляции потока управления. Мои находки позволили значительно ускорить работу получившегося у меня прототипа.
На тот момент я полагала, что этот метод не составит труда расширить и на декомпиляцию потока управления, возникающего при обработке исключений — то есть, что ему будут поддаваться блоки
Читать: https://habr.com/ru/articles/965922/?utm_campaign=965922
@a_cup_of_java | Другие наши каналы
Некоторое время назад я немного поэкспериментировала, пытаясь научиться декомпилировать файлы классов Java более эффективно, чем позволяют традиционные инструменты, предназначенные для этого — например, Vineflower. В конце концов, я написала статью, в которой изложила мой подход к декомпиляции потока управления. Мои находки позволили значительно ускорить работу получившегося у меня прототипа.
На тот момент я полагала, что этот метод не составит труда расширить и на декомпиляцию потока управления, возникающего при обработке исключений — то есть, что ему будут поддаваться блоки
try…catch. В ретроспективе признаю: следовало ожидать, что это будет не так просто. Оказывается, здесь возникает множество пограничных случаев, варьирующихся от странного поведения javac до последствий, отражающихся на самой структуре JVM и формате файлов классов. Всё это – серьёзные осложнения. В данном посте я разберу все эти детали, расскажу, почему простые решения не работают, и на каком подходе я в итоге остановилась.Читать: https://habr.com/ru/articles/965922/?utm_campaign=965922
@a_cup_of_java | Другие наши каналы
Разбор задачи «Regular Expression Matching»
В этой статье я разберу решение задачи сопоставления строки шаблону с регулярным выражением, которая предлагается сайтом LeetCode под номером 10.
Читать: https://habr.com/ru/articles/966134/?utm_campaign=966134
@a_cup_of_java | Другие наши каналы
В этой статье я разберу решение задачи сопоставления строки шаблону с регулярным выражением, которая предлагается сайтом LeetCode под номером 10.
Читать: https://habr.com/ru/articles/966134/?utm_campaign=966134
@a_cup_of_java | Другие наши каналы
❤1
Spring-boot-starter для паттерна Transaction outbox Kafka
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет.
В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter, который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
Читать: https://habr.com/ru/articles/966802/?utm_campaign=966802
@a_cup_of_java | Другие наши каналы
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет.
В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter, который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
Читать: https://habr.com/ru/articles/966802/?utm_campaign=966802
@a_cup_of_java | Другие наши каналы
✍1
Графический редактор PaintCAD Mobile — переделка под большие экраны телефонов
Жил-был в 2000-2005(-2010) годах такой пет-проект - графический пиксель-арт редактор для J2ME мобильных телефонов - PaintCAD (смесь паинта и системы, управляемой с телефонной клавиатуры, ползающей курсором по рисунку, рисующей и применяющей эффекты, обрабатывающей изображения, создающей GIF-анимации, растровые PCF-шрифты и т.д.).
И что было дальше?
Читать: https://habr.com/ru/articles/966836/?utm_campaign=966836
@a_cup_of_java | Другие наши каналы
Жил-был в 2000-2005(-2010) годах такой пет-проект - графический пиксель-арт редактор для J2ME мобильных телефонов - PaintCAD (смесь паинта и системы, управляемой с телефонной клавиатуры, ползающей курсором по рисунку, рисующей и применяющей эффекты, обрабатывающей изображения, создающей GIF-анимации, растровые PCF-шрифты и т.д.).
И что было дальше?
Читать: https://habr.com/ru/articles/966836/?utm_campaign=966836
@a_cup_of_java | Другие наши каналы
👍1
Скважины, потоки и GC: как Java помогает качать нефть и сохранять ИТ-ресурсы и кадры
Многие промышленные системы ТЭК десятилетиями держались на Java. И это помогло им избежать полного ребилда. Если коротко: нефтегазовые компании в России не стали переписывать свои системы с нуля — они просто остались на Java. Только теперь — на отечественной.
Читать: https://habr.com/ru/companies/axiomjdk/articles/966704/?utm_campaign=966704
@a_cup_of_java | Другие наши каналы
Многие промышленные системы ТЭК десятилетиями держались на Java. И это помогло им избежать полного ребилда. Если коротко: нефтегазовые компании в России не стали переписывать свои системы с нуля — они просто остались на Java. Только теперь — на отечественной.
Читать: https://habr.com/ru/companies/axiomjdk/articles/966704/?utm_campaign=966704
@a_cup_of_java | Другие наши каналы
👎2
Почему каждой команде нужен AI-рецензент в 2025
В статье Java67 рассказывается о CodeRabbit — AI-рецензенте, который автоматически находит баги, уязвимости и крайние случаи, экономит время на ревью и предотвращает инциденты. AI дополнит людей, а не заменит их. Обзор: Темы блога JavaRevisited
В статье собраны теги и архивы блога JavaRevisited — Java, Spring, алгоритмы, DevOps, ML, базы данных, интервью-вопросы и онлайн-курсы. Полезная навигация для подготовки к собеседованиям и самообучения. Навигация блога: архив и подписка
На странице перечислены архив по годам и месяцам, ссылки Privacy Policy и Terms & Conditions, блок "Popular Posts" и форма подписки по e-mail. Указан копирайт Soma Sharma 2021–2025. Полезно для поиска прошлых записей.
Подробности: http://www.java67.com/2025/11/stop-shipping-bugs-why-every-team-needs.html
#en
@a_cup_of_java | Другие наши каналы
В статье Java67 рассказывается о CodeRabbit — AI-рецензенте, который автоматически находит баги, уязвимости и крайние случаи, экономит время на ревью и предотвращает инциденты. AI дополнит людей, а не заменит их. Обзор: Темы блога JavaRevisited
В статье собраны теги и архивы блога JavaRevisited — Java, Spring, алгоритмы, DevOps, ML, базы данных, интервью-вопросы и онлайн-курсы. Полезная навигация для подготовки к собеседованиям и самообучения. Навигация блога: архив и подписка
На странице перечислены архив по годам и месяцам, ссылки Privacy Policy и Terms & Conditions, блок "Popular Posts" и форма подписки по e-mail. Указан копирайт Soma Sharma 2021–2025. Полезно для поиска прошлых записей.
Подробности: http://www.java67.com/2025/11/stop-shipping-bugs-why-every-team-needs.html
#en
@a_cup_of_java | Другие наши каналы
❤1
Forwarded from Типичный программист
С кем знакомятся типичные программисты: 2D-тян или живая девушка?
Согласно недавним исследованиям Vantage Point Counseling Services, треть американцев хотя бы раз состояла в романтических отношениях с ИИ. Появилось даже приложение Loverse для виртуальных знакомств, где вместо реальных людей роль партнёров выполняют чат-боты с искусственным интеллектом.
Мы решили провести своё исследование и выяснить где и с кем сегодня знакомятся пользователи стран СНГ. Пожалуйста, пройдите наш небольшой опрос. Это поможет нашему исследованию.
Пройти опрос.
Согласно недавним исследованиям Vantage Point Counseling Services, треть американцев хотя бы раз состояла в романтических отношениях с ИИ. Появилось даже приложение Loverse для виртуальных знакомств, где вместо реальных людей роль партнёров выполняют чат-боты с искусственным интеллектом.
Мы решили провести своё исследование и выяснить где и с кем сегодня знакомятся пользователи стран СНГ. Пожалуйста, пройдите наш небольшой опрос. Это поможет нашему исследованию.
Пройти опрос.
😍1
Как не сойти с ума с Grafana Unified Alerting: настраиваем алерт и разбираем все грабли
В какой-то момент простого дашборда уже не хватает. Хочется, чтобы метрики не просто “где-то красиво лежали”, а сами приходили и били в лицо, когда что-то пошло не так.
Разберёмся с Grafana Unified Alerting, expressions, темплейтами уведомлений и типичными ошибками, которые легко словить, если вы впервые лезете в алерты.
Читать: https://habr.com/ru/articles/966902/?utm_campaign=966902
@a_cup_of_java | Другие наши каналы
В какой-то момент простого дашборда уже не хватает. Хочется, чтобы метрики не просто “где-то красиво лежали”, а сами приходили и били в лицо, когда что-то пошло не так.
Разберёмся с Grafana Unified Alerting, expressions, темплейтами уведомлений и типичными ошибками, которые легко словить, если вы впервые лезете в алерты.
Читать: https://habr.com/ru/articles/966902/?utm_campaign=966902
@a_cup_of_java | Другие наши каналы
Многопоточность без боли: моя шпаргалка для собесов в Java
Всем привет!)
Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.
Поэтому в этой статье я хочу помочь вам уверенно подготовиться к секции по concurrency: разберём ключевые термины, посмотрим, как это работает на практике, и дам несколько советов, которые реально помогают на собесах. Поехали!
Читать: https://habr.com/ru/articles/966892/?utm_campaign=966892
@a_cup_of_java | Другие наши каналы
Всем привет!)
Я работаю Senior Java Developer в одном из банков, и за последние годы мне пришлось пройти не одно собеседование, услышать десятки каверзных вопросов и потратить уйму времени на подготовку. И вот что я понял: многопоточность — это одна из самых сложных и любимых тем на Java-собеседованиях, независимо от уровня кандидата.
Поэтому в этой статье я хочу помочь вам уверенно подготовиться к секции по concurrency: разберём ключевые термины, посмотрим, как это работает на практике, и дам несколько советов, которые реально помогают на собесах. Поехали!
Читать: https://habr.com/ru/articles/966892/?utm_campaign=966892
@a_cup_of_java | Другие наши каналы
Реактивное программирование в Java: от теории к практике
"Когда пару лет назад я впервые столкнулась с реактивным программированием, - рассказывает моя коллега Екатерина, - казалось, что это что-то слишком сложное и академическое. Но чем больше работаешь с современными высоконагруженными системами, тем яснее становится, что без реактивного подхода сложно обеспечить высокую отзывчивость и масштабируемость".
Читать: https://habr.com/ru/articles/966502/?utm_campaign=966502
@a_cup_of_java | Другие наши каналы
"Когда пару лет назад я впервые столкнулась с реактивным программированием, - рассказывает моя коллега Екатерина, - казалось, что это что-то слишком сложное и академическое. Но чем больше работаешь с современными высоконагруженными системами, тем яснее становится, что без реактивного подхода сложно обеспечить высокую отзывчивость и масштабируемость".
Читать: https://habr.com/ru/articles/966502/?utm_campaign=966502
@a_cup_of_java | Другие наши каналы
Выпущена версия Jmix 2.7
Мы рады сообщить о выпуске Jmix 2.7! Эта версия представляет обновленный дизайнер ролей в Jmix Studio, новые UI-компоненты и включает ряд других улучшений фреймворка. Полный список изменений вы можете посмотреть в разделе "Что нового" документации Jmix.
Ниже приведен краткий обзор основных новых функций Jmix 2.7.
Читать: https://habr.com/ru/companies/haulmont/articles/966526/?utm_campaign=966526
@a_cup_of_java | Другие наши каналы
Мы рады сообщить о выпуске Jmix 2.7! Эта версия представляет обновленный дизайнер ролей в Jmix Studio, новые UI-компоненты и включает ряд других улучшений фреймворка. Полный список изменений вы можете посмотреть в разделе "Что нового" документации Jmix.
Ниже приведен краткий обзор основных новых функций Jmix 2.7.
Читать: https://habr.com/ru/companies/haulmont/articles/966526/?utm_campaign=966526
@a_cup_of_java | Другие наши каналы
Добавляем MapReduce в этот наш SQL: генераторы на основе курсоров
Вот уже который год я потихоньку разрабатываю SQL-ный движок на основе Apache Spark, специализированный под задачи ETL. И хотя диалект языка изначально называется «Transform Definition Language», писать трансформации данных непосредственно на нём самом было до сих пор невозможно. Вместо этого на фазе Transform предполагалось использовать подключаемые модули, которые рантайм интерпретатора предоставляет из Java classpath.
Это очень эффективный с точки зрения производительности, но довольно долгий с точки зрения внедрения, и дорогой в разработке способ. Сначала трансформацию надо описать формально в виде статьи-whitepaper'а (это делает data scientist), потом написать прототип на Python (ответственность data analyst), отладиться на сэмпле реальных данных (тоже аналитик), и тогда уже делать и оптимизировать финальную имплементацию на Java с использованием низкоуровневого API Spark (собственно, задача разработчика). Неудобно.
Нельзя ли его как-нибудь сократить? Например, дать аналитикам инструмент для написания трансформаций непосредственно в самом SQL, вынеся некоторую часть функциональности MapReduce как разновидность итерирующих функций? Можно, конечно!
Давайте узнаем, как именно
Читать: https://habr.com/ru/articles/958362/?utm_campaign=958362
@a_cup_of_java | Другие наши каналы
Вот уже который год я потихоньку разрабатываю SQL-ный движок на основе Apache Spark, специализированный под задачи ETL. И хотя диалект языка изначально называется «Transform Definition Language», писать трансформации данных непосредственно на нём самом было до сих пор невозможно. Вместо этого на фазе Transform предполагалось использовать подключаемые модули, которые рантайм интерпретатора предоставляет из Java classpath.
Это очень эффективный с точки зрения производительности, но довольно долгий с точки зрения внедрения, и дорогой в разработке способ. Сначала трансформацию надо описать формально в виде статьи-whitepaper'а (это делает data scientist), потом написать прототип на Python (ответственность data analyst), отладиться на сэмпле реальных данных (тоже аналитик), и тогда уже делать и оптимизировать финальную имплементацию на Java с использованием низкоуровневого API Spark (собственно, задача разработчика). Неудобно.
Нельзя ли его как-нибудь сократить? Например, дать аналитикам инструмент для написания трансформаций непосредственно в самом SQL, вынеся некоторую часть функциональности MapReduce как разновидность итерирующих функций? Можно, конечно!
Давайте узнаем, как именно
Читать: https://habr.com/ru/articles/958362/?utm_campaign=958362
@a_cup_of_java | Другие наши каналы
Java-дайджест: Spring 7.0, JDK 26 и важные релизы
В обзоре InfoQ: GA Spring Framework 7.0, Spring Data и Spring AI; JEP‑предпросмотры для JDK 26; релизы Payara, Maven RC5, JobRunr и Micronaut — что важно знать.
Подробности: https://www.infoq.com/news/2025/11/java-news-roundup-nov10-2025/
#en
@a_cup_of_java | Другие наши каналы
В обзоре InfoQ: GA Spring Framework 7.0, Spring Data и Spring AI; JEP‑предпросмотры для JDK 26; релизы Payara, Maven RC5, JobRunr и Micronaut — что важно знать.
Подробности: https://www.infoq.com/news/2025/11/java-news-roundup-nov10-2025/
#en
@a_cup_of_java | Другие наши каналы
Как скопировать дерево, но не точь-в-точь
На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции одного синтаксического в другое, чтобы разобраться.
Читать: https://habr.com/ru/companies/pvs-studio/articles/967530/?utm_campaign=967530
@a_cup_of_java | Другие наши каналы
На собеседованиях и литкоде любят вращать бинарные деревья. Но что насчёт трансформации обычного дерева в другое? Как решить эту задачу, и какие могут быть подходы? Рассмотрим на опыте трансляции одного синтаксического в другое, чтобы разобраться.
Читать: https://habr.com/ru/companies/pvs-studio/articles/967530/?utm_campaign=967530
@a_cup_of_java | Другие наши каналы