<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Roman Kryvolapov — Статьи</title><description>Статьи и заметки о Java, Kotlin, Android, Spring, AI и LLM.</description><link>https://romankryvolapov.com/</link><language>ru</language><item><title>Android — Компоненты и View</title><link>https://romankryvolapov.com/ru/android-components-and-views/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/android-components-and-views/</guid><description>Жизненные циклы Activity, Fragment, View и Service, устройство Context, Intent, WorkManager, RecyclerView и различия между MVP, MVVM, MVC и MVI.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Android Paging 3 и Paging in AdapterDelegates</title><link>https://romankryvolapov.com/ru/android-paging-3/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/android-paging-3/</guid><description>Пагинация в Android на Paging 3: PagingSource, PagingDataAdapter, адаптер состояний загрузки и подключение к AdapterDelegates.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Android Push Provisioning API</title><link>https://romankryvolapov.com/ru/android-push-provisioning-api/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/android-push-provisioning-api/</guid><description>Подключение Android Push Provisioning API: настройка tapAndPay SDK, whitelist приложения, требования Google Pay к UI и передача карты через OPC.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Cursor IDE — Best Practices</title><link>https://romankryvolapov.com/ru/cursor-ide-best-practices/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/cursor-ide-best-practices/</guid><description>Практики работы с Cursor IDE: Rules для проекта и папок, режим Auto, MCP-серверы, декомпозиция задач и проверка изменений перед commit.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Google Guava в примерах</title><link>https://romankryvolapov.com/ru/google-guava-in-examples/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/google-guava-in-examples/</guid><description>Возможности Google Guava в примерах на Kotlin: Multimap, BiMap, Table, кэш, работа со строками, хеширование, IO и конкурентность.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>gRPC — Как это работает</title><link>https://romankryvolapov.com/ru/grpc/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/grpc/</guid><description>Как устроен gRPC поверх HTTP/2 и Protocol Buffers, чем он выигрывает у REST и как собрать сервер и клиент на Kotlin с Gradle.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java / Kotlin Core — Многопоточность</title><link>https://romankryvolapov.com/ru/java-kotlin-multithreading/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-kotlin-multithreading/</guid><description>Многопоточность в Java и Kotlin: volatile и synchronized, ReentrantLock, корутины и Channels, операторы RxJava и стратегии backpressure.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java / Kotlin Core — Теоретические вопросы</title><link>https://romankryvolapov.com/ru/java-kotlin-theory/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-kotlin-theory/</guid><description>Сложность операций с коллекциями, паттерны проектирования, SOLID, наследование против композиции и функции высшего порядка в Java и Kotlin.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Core — Основные вопросы</title><link>https://romankryvolapov.com/ru/java-core-questions/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-core-questions/</guid><description>Ответы на вопросы по Java Core: типы данных, коллекции и HashMap, дженерики, рефлексия, устройство памяти JVM и работа Garbage Collector.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Cloud</title><link>https://romankryvolapov.com/ru/java-spring-cloud/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-cloud/</guid><description>Облачные сервисы AWS, Google Cloud и Azure для Java-приложений: сопоставление аналогов, оптимизация затрат, serverless, Git LFS и субмодули.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Аннотации Spring</title><link>https://romankryvolapov.com/ru/java-spring-annotations/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-annotations/</guid><description>Справочник аннотаций Spring с примерами на Kotlin: @Component, @Bean, @Transactional, маппинг запросов, JPA и разница между @Component и @Bean.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Компоненты Spring</title><link>https://romankryvolapov.com/ru/java-spring-components/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-components/</guid><description>Настройка application.properties, WebSocket, GraphQL, OAuth 2.0, Spring Security, Actuator, WebFlux и Batch с примерами кода и конфигурации.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Концепции</title><link>https://romankryvolapov.com/ru/java-spring-concepts/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-concepts/</guid><description>Saga и Rollback, SOLID, Clean Architecture, REST и RPC, IoC и DI, Spring MVC, Project Reactor, сервлеты и CSRF — разбор концепций с примерами на Kotlin.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Микросервисы</title><link>https://romankryvolapov.com/ru/java-spring-microservices/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-microservices/</guid><description>Взаимодействие микросервисов на Spring: REST и WebClient, Kafka и RabbitMQ, Docker и Kubernetes, Eureka, Cloud Gateway и трассировка запросов.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Список вопросов</title><link>https://romankryvolapov.com/ru/java-spring-questions/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-questions/</guid><description>Указатель вопросов для собеседования Java-разработчика: Java Core, Kotlin, многопоточность, аннотации и компоненты Spring, микросервисы и SQL.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Хранение данных</title><link>https://romankryvolapov.com/ru/java-spring-data-storage/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/java-spring-data-storage/</guid><description>Хранение данных в Spring: ACID и уровни изоляции, @Transactional, JPA против JDBC, Spring Data, кеширование в Redis, Flyway и индексы.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin 2.0 — основные нововведения в синтаксисе</title><link>https://romankryvolapov.com/ru/kotlin-2-key-syntax-changes/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/kotlin-2-key-syntax-changes/</guid><description>Что изменилось в синтаксисе Kotlin 2.0: context receivers, value classes, sealed interface, деструктуризация в for и pattern matching в when.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin Core — Основные вопросы</title><link>https://romankryvolapov.com/ru/kotlin-core-questions/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/kotlin-core-questions/</guid><description>Как устроены корутины и suspend, чем launch отличается от async, как работают scope functions, делегаты, extension и companion object в Kotlin.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Kubernetes — Как это работает</title><link>https://romankryvolapov.com/ru/kubernetes/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/kubernetes/</guid><description>Устройство Kubernetes: архитектура control plane, namespace, балансировка нагрузки, команды kubectl, Dashboard и мониторинг через Prometheus.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>LLama.cpp AI LLM Engine — Как это работает</title><link>https://romankryvolapov.com/ru/llama-cpp/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/llama-cpp/</guid><description>Как устроен инференс в llama.cpp: загрузка GGUF, токенизация, построение вычислительного графа, KV-cache и сэмплинг следующего токена.</description><pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate></item><item><title>LoRA — Дообучение AI LLM моделей</title><link>https://romankryvolapov.com/ru/lora-fine-tuning/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/lora-fine-tuning/</guid><description>Дообучение LLM с помощью LoRA: чем подход отличается от RAG, как обучить адаптеры к gemma-3-4b на unsloth и peft и получить GGUF.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Mock ответов сервера в Android разработке при помощи Interceptor</title><link>https://romankryvolapov.com/ru/android-mock-interceptor/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/android-mock-interceptor/</guid><description>Как подменять ответы сервера в Android своим OkHttp Interceptor: модель MockResponse, map по url и подключение к OkHttpClient.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Offline AI Launcher — запуск AI LLM нейросетей на смартфоне</title><link>https://romankryvolapov.com/ru/offline-ai-launcher/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/offline-ai-launcher/</guid><description>Приложение Offline AI Launcher: как запускать LLM Gemma, DeepSeek, Llama и Qwen прямо на Android из моделей .gguf, без интернета и подписки.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>RAG (Retrieval-Augmented Generation), Function / Tools Calling, CAG (Cache-Augmented Generation) для LLM моделей</title><link>https://romankryvolapov.com/ru/rag-and-function-calling/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/rag-and-function-calling/</guid><description>RAG, Function Calling и CAG для локальных LLM: как работает векторная база и примеры на Kotlin, Dspy, LangChain, LangChain4j и llama.cpp.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Безопасность микросервисов и веб приложений</title><link>https://romankryvolapov.com/ru/microservices-security/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/microservices-security/</guid><description>Микросервис авторизации, API Gateway, mTLS и сертификаты: как безопасно хранить пароли, защищаться от brute-force и какие алгоритмы шифрования выбрать.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Введение в Ktor и Exposed</title><link>https://romankryvolapov.com/ru/ktor-manual/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/ktor-manual/</guid><description>Серверное приложение на Kotlin с Ktor: работа с базой через Exposed и JDBI, внедрение зависимостей Koin, тесты на Mockk и Testcontainers, миграции Flyway.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Введение в Project Loom</title><link>https://romankryvolapov.com/ru/project-loom-manual/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/project-loom-manual/</guid><description>Виртуальные потоки Project Loom в Java: как JVM планирует их на carrier threads, чем они отличаются от Kotlin Coroutines и как включить в Spring.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Векторные базы данных</title><link>https://romankryvolapov.com/ru/vector-databases/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/vector-databases/</guid><description>Векторные базы на практике: чем отличаются Milvus, Qdrant и Weaviate, как считаются эмбеддинги, работают индексы HNSW и поиск по близости.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Динамическая генерация UI в Android приложении при помощи RecyclerView и AdapterDelegates</title><link>https://romankryvolapov.com/ru/recyclerview-adapterdelegates/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/recyclerview-adapterdelegates/</guid><description>Как собрать динамический UI на RecyclerView с библиотекой AdapterDelegates: делегаты, переиспользуемые элементы списка и сравнение через DiffEquals.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Логирование работы Android приложения в txt файлы</title><link>https://romankryvolapov.com/ru/android-logging-to-file/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/android-logging-to-file/</guid><description>Логгер LogUtil для Android: запись debug- и error-логов и сетевых запросов OkHttp в отдельные txt-файлы в папке Документы на телефоне.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Настройка кастомных параметров запуска IntelliJ IDEA / Android Studio</title><link>https://romankryvolapov.com/ru/intellij-idea-launch-options/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/intellij-idea-launch-options/</guid><description>Что делает каждый флаг в Edit Custom VM Options: размеры heap, выбор Garbage Collector, кэш кода и настройка памяти в Android Studio.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Небольшой мануал по MapStruct</title><link>https://romankryvolapov.com/ru/mapstruct-manual/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/mapstruct-manual/</guid><description>Практические приёмы MapStruct в Kotlin: маппинг полей с разными именами, @Named, переиспользование логики и обход типичных ошибок компиляции.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Нейросети простым языком</title><link>https://romankryvolapov.com/ru/neural-networks-basics/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/neural-networks-basics/</guid><description>Как устроена LLM: токенизация, embedding, attention в трансформере, квантование и семплеры, которые определяют выбор следующего токена.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Реляционные SQL базы данных</title><link>https://romankryvolapov.com/ru/relational-sql-databases/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/relational-sql-databases/</guid><description>Синтаксис SQL, VIEW и индексы, JOIN и CTE, блокировки при конкурентном доступе и чтение плана запроса в PostgreSQL, MySQL и Oracle.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Техники промпт-инжиниринга для больших языковых моделей</title><link>https://romankryvolapov.com/ru/prompt-engineering/</link><guid isPermaLink="true">https://romankryvolapov.com/ru/prompt-engineering/</guid><description>Разделители, XML-теги, few-shot, псевдокод и иерархия правил: как форматировать промпты для ChatGPT, Claude и Gemini ради предсказуемого ответа.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>