Обновить
26

Пользователь

17
Подписчики
Отправить сообщение

Cказ о том, как мы с Oracle на PostgreSQL переехали

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

Привет, Хабр! Меня зовут Даша Александрова, я Java‑разработчик. Хочу поделиться опытом миграции данных из Oracle в PostgreSQL без простоя сервисов.

Причина миграции — импортозамещение.

Теперь немного про сам проект. В его основе — микросервисная архитектура на Java 11/17 и Spring Boot 2/3. В качестве основной базы данных использовалась Oracle с несколькими схемами. В коде сочетаются нативные SQL‑запросы и Hibernate, вся бизнес‑логика живет на уровне приложения — без процедур, триггеров и другой логики в базе. Идентификаторы генерируются через sequence. Проект активно развивается, регулярно выпускаются релизы. Система ориентирована на клиентские приложения — мобильное и веб, при этом нагрузка остается умеренной и не относится к highload‑сценариям.

Ключевое нефункциональное требование — выполнить миграцию без простоя системы и без заметного влияния на пользователей.

Может возникнуть логичный вопрос: если такие миграции уже делались не раз, почему просто не взять готовое решение? На практике универсального подхода не существует.

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

Читать далее

Как я собрал автономную AI-новостную систему за полтора месяца

Время на прочтение7 мин
Охват и читатели9.3K

Автор: Алексей Кравцов

Полтора месяца назад у меня было семь воркфлоу в n8n для новостного пайплайна. Каждый делал что-то своё. На бумаге красиво. На практике — постоянные затыки. Где-то новость застряла, непонятно где. Исправляешь одно — ломается другое.

Семь воркфлоу — семь точек отказа. И каждая ломается по-своему.

Сегодня та же задача решена иначе: 160 уникальных источников, 7127 записей в базе, 11 воркеров, 5 AI-агентов, локальная LLM на домашнем мини-ПК — и оркестратор, которому я просто пишу задачу в Telegram.

Без n8n. Без ручного управления. Почти без моего участия.

Вот как это вышло.

Читать далее

Мыслепреступление на Android: как скрыть Перехватчик трафика от Государственных приложений

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели119K

Государство усиливает заботу о гражданах: крупные сервисы и государственные приложения на Android всё активнее выявляют использование Перехватчиков трафика. Разбираемся, какими методами ведётся это наблюдение — и что Ненадёжные элементы противопоставляют Праведному взору Государства.

Читать далее

Дружба Linux и Windows, или как поиграться с ИИ-моделями на втором компьютере без видеокарты

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

Работаете под Windows? Есть лишний компьютер? Нет видеокарты, но хотите сами запускать ИИ-модели? Тогда

делаем как на картинке, по шагам.

Как я получила оффер в международную компанию в конце 2025 года, и что на самом деле помогло

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

Меня зовут Ксения. Я продакт-менеджер с бэкграундом аналитика. 

Эта статья о моем пути к офферу в международной компании (в моём случае в PLATA), про решения, которые я принимала на каждом этапе, и про то, что реально сработало. 

Читать далее

Большая распаковка Java 26. Что этот релиз значит для нас всех?

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.2K

Java 26 вышла 18 марта. В релизе 10 JEP-ов: Structured Concurrency получила шестое превью и API наконец стабилизировался, final-поля начинают путь к настоящей иммутабельности, G1 и ZGC получили улучшения производительности, примитивы заработали в паттернах, а HTTP/3 вошёл в стандартный HttpClient финальной фичей.

Разбираем каждое из изменений и смотрим, как перевести реальный проект на Java 26.

Читать далее

Как перестать терять данные в Kafka: окно безопасности и проактивный мониторинг «возраста» данных

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

В Kafka данные могут пропадать, даже если в конфигах стоит хранение 7 дней. В этом коротком кейсе — как я решил проблему потери данных, внедрив мониторинг «окна безопасности».

Проблема: Байты сильнее времени

Решение: Метрика «Data Safety Window»

Конфигурация — это лишь декларация о намерениях. Реальное окно жизни данных диктует нагрузка в моменте.

Чтобы не гадать по конфигам, я внедрил расчет фактического запаса времени в Grafana.

Читать далее

Apache Avro — на светлой стороне Кафки

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели32K

Добрый день, Хабр!

Меня зовут Сергей Игнатенко, я — девлид в поезде «Операционная платформа» ВСК. Хочу сегодня рассказать об опыте использования SchemaRegistry и Avro в Kafka.

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

Принцип работы прост: продюсер отправляет сообщение в Kafka, где оно размещается в очереди. Далее один или несколько консюмеров считывают это сообщение.

Читать далее

HttpClient в Spring 7: замена FeignClient или нет?

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

Последние годы FeignClient и RestTemplate были де-факто стандартом для вызова внешних API в Spring. Но теперь появился нативный Http Interface Client — и я решил проверить, можно ли им заменить Feign без потери удобства.

Переходим на Spring 7 увереннее!

Как я защитил свой VPN от DPI: graylist + nginx stream + немного паранойи

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели52K

Стандартная схема Reality+Xray работает по принципу «не пойман — не вор». Зонд подключается без правильного SNI → получает редирект на легитимный сайт → уходит. Но что если зонд знает ваш точный SNI? Что если он стучится не один раз, а методично, каждые 5 минут, из разных подсетей?

Я столкнулся с этим в Беларуси: за трое суток работы скрипта/детектора — ни одного «глупого» зонда с пустым SNI, только аккуратные коннекты с правильным google.com и аномальным поведением. Пришлось добавить два слоя защиты поверх стандартной схемы:

Читать далее

Kafka для начинающих: Apache Avro и Schema Registry (практика)

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели11K

Переводим нашу платформу с JSON на Apache Avro и Schema Registry. Заменяем сериализаторы и десериализаторы, генерируем классы из схем и разбираем разницу между GenericRecord и SpecificRecord.

Практика на реальном проекте.

Читать далее

Стили интеграции: от файлов до событий — как выбрать правильно

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.3K

Выбирать стиль интеграции приложений — всё равно что выбирать фундамент для дома. Ошибёшься — и переделывать придётся, когда стены уже стоят.

В этой статье я разбираю четыре основных стиля интеграции: передача файлов, общая база данных, удалённый вызов процедур (RPC) и асинхронный обмен сообщениями (Messaging). Без воды, на реальных примерах — включая историю провала TSB Bank, который стоил сотен миллионов фунтов.

Вы узнаете:

▪️ почему общая база данных — это антипаттерн для микросервисов;
▪️ как асинхронность спасает прод, когда падают соседние сервисы;
▪️ какие best practice используют команды, чтобы не получить распределённый монолит.

Если вы архитектор, тимлид или разработчик, который хочет строить надёжные системы — добро пожаловать под кат.

Читать далее

Домашний сервер, Matrix-чат с близкими и личная автоматиция через OpenClaw

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

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

Читать далее

Свой ИИ без облаков: практический гайд по llama.cpp + Qwen

Время на прочтение26 мин
Охват и читатели32K

В этой статье я расскажу, как установить нейросеть на своё оборудование. Так вы сможете изучить LLM и применить их на практике. При этом ваши данные не будут передаваться в чужие облака, что критично при работе с конфиденциальными данными. И вам не придётся платить за использование какого-либо внешнего сервиса или решать вопросы с заблокированным доступом.

Вы установите инструмент для запуска больших языковых моделей llama.cpp и модель нейросети Qwen на компьютер или сервер. Я расскажу об установке в тех случаях, когда в составе оборудования есть Nvidia GPU или интегрированная графика Intel Iris Xe Graphics (актуально для ноутбуков).

Читать далее

Не доверяй чужому VPN: поднимаем self-hosted AmneziaWG с веб-панелью

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

В медиаполе снова пошла знакомая волна предупреждений: пользоваться VPN и другими средствами обхода блокировок не только нежелательно, но еще и опасно. Мошенники крадут данные, учетные записи и деньги, а доверчивый пользователь, разумеется, остается крайним.

Рациональное зерно в этом, конечно, есть. Случайные VPN-сервисы - особенно бесплатные, непрозрачные и обещающие «полную анонимность в один клик» - действительно могут оказаться сомнительным выбором. Когда весь ваш трафик идет через неизвестно чью инфраструктуру, вопрос доверия перестает быть теоретическим.

Но дальше обычно начинается привычная подмена. Из тезиса «не стоит пользоваться чем попало» очень быстро пытаются перейти к тезису «не стоит пользоваться ничем вообще». И вот это уже больше похоже не на заботу о безопасности, а на очередную попытку объяснить, что ограниченный интернет - это и есть нормальный интернет.

На практике все работает ровно наоборот. Чем больше ограничений, тем выше спрос на инструменты обхода. И если уж выбирать между случайным коммерческим VPN, бесплатным приложением с мутной моделью монетизации и собственным сервером, то self-hosted-вариант выглядит как минимум достойным внимания.

Поэтому дальше речь пойдет не о том, почему VPN - это страшно, а о том, как сделать его своим: развернуть self-hosted AmneziaWG с помощью install-скрипта и дополнить его веб-интерфейсом для управления пользователями.

Читать далее

Claude Code бесплатно: как использовать ии бесплатно в 2026 году

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

31 марта из npm source maps утёк исходный код Claude Code. Через часы появился OpenClaude — форк с OpenAI-совместимым шимом, который позволяет подключить GPT-4o, DeepSeek, Llama через Ollama или любую модель. Разбираю, как это устроено, что реально работает, что нет, и почему «бесплатный Claude Code» — не совсем то, чем кажется.

Читать далее

Чиним доступ к Telegram, GPT и другим API из России

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели98K

Если вы работаете с Telegram-ботами и внезапно начали ловить таймауты и нестабильные ответы — пора ставить прокси.

Для API и ботов достаточно обычного HTTP/SOCKS-прокси.

В статье покажу, как за пару команд поднять прокси на VDS и сразу использовать его в коде в том числе с помощью CLI, который я написал, чтобы не возиться с конфигами вручную.

Читать далее

Health Score для PostgreSQL: один показатель вместо 150 метрик

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

Мониторинг PostgreSQL сломан: 150 метрик в pg_stat_*, и ни одна не отвечает на вопрос «база здорова?». В статье — как устроен Health Score: единое число от 0 до 100, которое агрегирует состояние базы и заменяет 30 дашбордов Grafana.

Читать далее

RAG или умный поиск по документам: как это работает

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

Хотите за секунды находить точный ответ в сотнях закрытых корпоративных PDF, Excel и презентаций, вместо того чтобы часами копаться в «мусорном» поиске по ключевым словам?

В статье разберем новую архитектуру RAG — система, которая сначала молниеносно находит нужные куски документов по смыслу, а потом объясняет их человеческим языком строго по источникам, практически без галлюцинации.

В статье мы раскрыли всю «кухню» от семантической нарезки и эмбеддингов до HyDE, RRF и итеративного поиска — читайте и сразу пробуйте своего супербота на pro-talk.ru!

Читать далее

VLESS на роутере с OpenWRT

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

Небольшая инструкция по установке VPN (протокол VLESS), на роутер с операционной системой OpenWRT с использованием пакета Passwall

Читать далее

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность